Learning Path: The Complete Guide to Elasticsearch 5.x
0.0 (0 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
6 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Learning Path: The Complete Guide to Elasticsearch 5.x to your Wishlist.

Add to Wishlist

Learning Path: The Complete Guide to Elasticsearch 5.x

Perform advanced search and analytics with Elasticsearch 5.x
0.0 (0 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
6 students enrolled
Created by Packt Publishing
Last updated 8/2017
Curiosity Sale
Current price: $10 Original price: $200 Discount: 95% off
30-Day Money-Back Guarantee
  • 4 hours on-demand video
  • 1 Supplemental Resource
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Understand how to choose the best Elasticsearch cloud topology to deploy and power it up with external plugins
  • Learn cluster, node, and its services
  • Understand and explore replication and sharding
  • Learn how to map base types, arrays, and objects
  • Get familiar with basic operations in Elasticsearch such as creating, deleting, and opening/closing
  • Learn how to use has_child query, has_parent query, and nested query for searching
  • Explore aggregations and scripting in Elasticsearch
View Curriculum
  • Basic JSON knowledge is required.
  • Understanding of Java and related technologies is also needed.

Elasticsearch is an open-source, broadly-distributable, readily-scalable, and enterprise-grade search engine. Accessible through an extensive and elaborate API, Elasticsearch can power extremely fast searches that support your data discovery applications. If you are a developer who wants to get the most out of Elasticsearch for advanced search and analytics, then go for this Learning Path.

Packt’s Video Learning Path is a series of individual video products put together in a logical and stepwise manner such that each video builds on the skills learned in the video before it.

With regard to Elasticsearch, we have the following advantages:

Full-text search. Schema free. Built on top of Lucene. Supports Cloud.

This Learning Path is a one-stop guide to master the complete Elasticsearch ecosystem. You will start with learning new features of Elasticsearch 5.x and setting up Elasticsearch on your system. Then, you will learn basic operations of Elasticsearch to perform on your data. Moving ahead, you will learn to create complex queries and analytics, and perform index mapping. Finally, you will learn advanced operations such as searching, working with text, numeric and geo queries, and performing aggregations and scripting.

By the end of this Learning Path, you will gain a deeper understanding of new features and operations of Elasticsearch 5.x to create flexible and scalable search solutions.

About the Author:

Alberto Paro is an engineer, project manager, and software developer. He currently works as freelance trainer/consultant on big data technologies and NoSQL solutions. He loves to study emerging solutions and applications mainly related to big data processing, NoSQL, natural language processing, and neural networks. He began programming in BASIC on a Sinclair Spectrum when he was eight years old, and to date, has collected a lot of experience using different operating systems, applications, and programming languages.

Who is the target audience?
  • This Learning Path is for developers who want to learn Elasticsearch for advanced search and analytics.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
51 Lectures
Elasticsearch 5.x Solutions: Getting Started
26 Lectures 01:43:48

This video gives an overview of the course.

Preview 02:12

Every instance of Elasticsearch is called node. Several nodes are grouped in a cluster. This is the base of the cloud nature of Elasticsearch.

Understanding Cluster, Node and It's Services

If you'll be using Elasticsearch as a search engine or a distributed data store, it's important to understand concepts on how Elasticsearch stores and manages your data.

Managing Data

Related to shards management, there are key concepts of replication and cluster status.

Understanding Cluster, Replication, and Sharding

In Elasticsearch 5.x, there are only two ways to communicate with the server using the HTTP protocol or the native one. In this video, we will take a look at these main protocols.

Communicating with Elasticsearch

Elasticsearch has an active community and the release cycles are very fast. Because Elasticsearch depends on many common Java libraries (Lucene, Guice, and Jackson are the most famous ones), the Elasticsearch community tries to keep them updated and fixes bugs that are discovered in them and in Elasticsearch core.

Preview 04:49

Correctly setting up networking is very important for your nodes and cluster. There are a lot of different installation scenarios and networking issues: the first step for configuring the nodes to build a cluster is to correctly set the node discovery.

Setting Up Networking

Elasticsearch allows customizing several parameters in an installation. In this recipe, we'll see the most used ones to define where to store our data and to improve the overall performances.

Setting Up a Node

Elasticsearch is natively designed for the cloud, so when you need to release a production environment with a huge number of records and you need high availability and good performances, you need to aggregate more nodes in a cluster.

Setting Up Different Node Types

One of the main features of Elasticsearch is the possibility to extend it with plugins. Plugins extend Elasticsearch features and functionalities in several ways. In Elasticsearch 5.x, the plugins are native plugins–they are jars files that contain application code.

Installing and Removing Plugins

Standard logging settings work very well for general usage. Changing the log level can be useful to check for bugs or understanding malfunctions due to bad configuration or strange plugin behaviors. A verbose log can be used from the Elasticsearch community to cover problems.

Changing Logging Settings

Docker is a container system that allows to easily deploy replicable installations of server applications. With Docker, you don't need to set up a host, configure it, download the Elasticsearch server, unzip it, or start the server–everything is done automatically by Docker.

Setting Up a Node Via Docker

Mapping is a very important concept in Elasticsearch, as it defines how the search engine should process a document. Let’s try and understand mapping by considering index as a database in the SQL world.

Using Explicit Mapping Creation

Using explicit mapping allows to be faster in starting to insert the data using a schemaless approach without being concerned of the field types. Let’s take a look at mapping base types, arrays, and object in this video.

Mapping Base Types, Arrays, and Object

The document is also referred as the root object. It has special parameters to control its behavior, mainly used internally to do special processing, such as routing or time-to-live of documents. This video will guide us with special field and dynamic template.

Mapping a Document and Using Dynamic Templates

There is a special type of embedded object, the nested one. Elasticsearch also allows defining child documents. Often a field must be processed with several core types or in different ways. Let’s explore nested objects, child document and multiple mapping.

Managing Nested Objects, Child Document, and Multiple Mapping

Elasticsearch natively supports the use of geolocation types: special types that allow localizing your document in geographic coordinates (latitude and longitude) around the world. There are two main types used in geographic world: the point and the shape.

Mapping GeoPoint Field and GeoShape Field

Elasticsearch is used in a lot of systems to collect and search logs such as Kibana and LogStash. It also allows extending its core types to cover new requirements with native plugins that provide new mapping types.

Mapping IP Field and Attachment Field

Sometimes when we are working with our mapping, it is required to store some additional data to be used for display purposes, ORM facilities, permissions, or simply to track them in the mapping. We’ll also have to see several analyzers and how to use them to improve the indexing and searching quality.

Adding Metadata, Specifying Analyzer and Mapping Completion Field

The first operation to do before starting indexing data in Elasticsearch is to create an index–the main container of our data. Let’s also see the counterpart of creating an index is deleting one.

Creating, Deleting, and Opening/Closing an Index

You learned how to build mapping by indexing documents. This video shows how to put a type mapping in an index. This kind of operation can be considered as the Elasticsearch version of an SQL-created table.

Putting and Getting a Mapping

There are a lot of common scenarios that involve changing your mapping. Due to limitations in Elasticsearch mapping, that is, it cannot delete a defined one, you often need to reindex index data. Let’s take a look at reindexing and refreshing in detail.

Reindexing, Refreshing, and Flushing

The Elasticsearch core is based on Lucene, which stores the data in segments on disk. During the life of an index, a lot of segments are created and changed. With the increase of segment number, the speed of search is decreased due to the time required to read all of them.

Force Merge and Shrinking an Index

Elasticsearch natively supports the use of geolocation types: special types that allow localizing your document in geographic coordinates (latitude and longitude) around the world. There are two main types used in geographic world: the point and the shape.

Managing Index Settings and Using Index Aliases

In Elasticsearch, there are two vital operations: index and search. Indexing means storing one or more documents in an index: a similar concept of inserting records in a relational database. After having indexed a document, during application life it must be retrieved. Let’s explore how we do that.

Indexing and Getting a Document

Deleting documents in Elasticsearch is possible in two ways: using the DELETE call or the delete_by_query call. Also, Documents stored in Elasticsearch can be updated during their lives. There are two available solutions to do this operation in Elasticsearch: adding a new document or using the update call.

Deleting and Updating a Document

Test your knowlege
5 questions
Elasticsearch 5.x Solutions – Mastering Elasticsearch Operations
25 Lectures 02:05:59

This video gives an overview of the entire course.

Preview 03:13

We'll see that a search in Elasticsearch is not only limited to matching documents, but it can also calculate additional information required to improve the search quality.

Searching, Sorting, and Highlighting Results

In Elasticsearch, there is not a deterministic order for records-pagination on a big block of values can bring inconsistency between results due to the added and deleted documents and also documents with the same score.

Scrolling and Returning Inner Hits

It's very common for users to commit typing errors or to require suggestions for words that they are writing.

Suggesting Correct Query and Counting Matched Results

When executing searches, it's very common to have documents that don't match the query as expected.

Query and Query Profiling

Elasticsearch provides a call to delete all the documents that match a query via an additional module called reindex.

Deleting and Updating by Query

The match_all query allows the user to return all the documents.

Matching All Documents and Using a Boolean Query

Term queries work with exact value matches and are generally very fast, and the prefix query allows completing truncated or partial terms.

Using a Term and Prefix Query

The wildcard query allows completing truncated or partial terms. The span query family is a group of queries that control a sequence of text tokens via their positions.

Using wildcard, regexp, and Span Query

Elasticsearch provides a helper to build complex span queries that depend on simple preconfigured settings. This helper is called match query and the query string query is a special type of query that allows defining complex queries by mixing the field rules.

Using a Match and Query String Query

In every application, it's very common to search a range of values.

Using Range, Common Term, and IDs Query

Using the Function Score, Exist, and Template Query

Using the Function Score, Exist, and Template Query

The has_child query allows querying for parent documents of children matching other queries.

Using the has_child Query

Elasticsearch provides a query to search child documents based on the parent query, has_parent.

Using the has_parent Query

One of the most common operations in geolocalization is searching for a box.

Using the geo_bounding_box Query

Elasticsearch provides a way to filter user-defined polygonal shapes via the geo_polygon filter.

Using the geo_polygon Query

When you are working with geolocations, one common task is to filter results based on the distance from a location.

Using the geo_distance Query

Elasticsearch provides several functionalities other than search; it allows executing statistics and real-time analytics on searches via the aggregations.

Executing Stats and Terms Aggregation

It's often required to return the buckets aggregated in ranges: the range aggregations meet this requirement.

Executing Range and Histogram Aggregations

We need to reduce the number of hits in our aggregation to satisfy a particular filter. Hence, to obtain this result, the filter aggregation is used.

Executing Filter Aggregations

Elasticsearch provides a special aggregation global that is executed globally on all the documents without being influenced by the query.

Executing Global, Geo Distance, and Children Aggregation

When working with complex structures, the nested objects are very common. The top hit aggregation is used as a sub-aggregation, so that the top matching documents can be aggregated in buckets.

Executing Nested, Top Hit, and Matrix Stats Aggregation

It's a very common scenario having a set of documents that match a query and you need to know the box that contains them.

Executing the geo_bound and geo_centroid Aggregation

Painless is a simple and secure scripting language available in Elasticsearch by default.

Painless Scripting

Elasticsearch provides native scripting a Java code compiled in JAR and Painless, but a lot of interesting languages are available, such as JavaScript and Python.

Installing Additional Scripts Plugins

Test your knowlege
5 questions
About the Instructor
Packt Publishing
3.9 Average rating
7,297 Reviews
52,231 Students
616 Courses
Tech Knowledge in Motion

Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.

With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.

From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.

Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.