Complete Guide to Elasticsearch
4.2 (663 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.
3,296 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Complete Guide to Elasticsearch to your Wishlist.

Add to Wishlist

Complete Guide to Elasticsearch

Comprehensive guide to Elasticsearch, the popular search engine built on Apache Lucene. Learn Elasticsearch from scratch
4.2 (663 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.
3,296 students enrolled
Created by Bo Andersen
Last updated 6/2017
Current price: $10 Original price: $95 Discount: 89% off
4 days left at this price!
30-Day Money-Back Guarantee
  • 3.5 hours on-demand video
  • 2 Articles
  • 7 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Be able to build a powerful search engine with Elasticsearch
  • Understand the theory of Elasticsearch in details
  • Write complex search queries
  • Be proficient with the concepts and terminology of Elasticsearch
View Curriculum
  • Knowledge of JSON

This course is currently being completely remade for higher quality and to be 100% up to date with Elasticsearch 5.x and 6.x alpha. Fresh content is added every week, and 5+ hours of new content is coming your way in the coming weeks!

Do you want to learn the popular search engine, Elasticsearch, from the beginning and become a professional in no time? This course is an excellent starting point for you to quickly learn the basics of Elasticsearch and to put your knowledge to work in just a few hours! Elasticsearch is an extremely popular search engine and will be an excellent addition to your CV - even if you are already familiar with other search engines or frameworks such as Apache Lucene, Apache Solr, Amazon CloudSearch, etc.

The course is a combination of theory and learning by doing. Before giving examples of how to perform certain queries, you will have been equipped with the necessary theory in advance. This ensures that you not only know how to perform powerful searches with Elasticsearch, but that you also understand the relevant theory.

The course starts from the absolute beginning, and no prior experience or knowledge with Elasticsearch is required. We will walk through all of the most important aspects of Elasticsearch, and at the end of this course, you will be able to build powerful search engines. This could be for a website where you could build Google-like search functionality, for example.

So, join me in this course and learn to build powerful search engines with Elasticsearch today!

About Elasticsearch

Elastic search is a search engine that is developed by the company Elasticsearch BV. The search engine is built on Apache Lucene and has become extremely popular in recent years, due to its powerful features and ease of use.

Who is the target audience?
  • This course is intended for people who either want to learn Elasticsearch and have no prior experience with this search engine, or people who have basic experience with Elasticsearch and who would like to expand on their knowledge or refreshen their memory.
  • This course does not cover all of the details of Elasticsearch, but covers the basics in details. The most important parts of Elasticsearch have been carefully chosen. If you want to start with Elasticsearch or have some knowledge of the search engine, then this course is an excellent starting point for you.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
44 Lectures
Getting Started
6 Lectures 20:50

This lecture introduces the course and talks about how the course is structured.

Preview 01:06

This is an introduction to Elasticsearch that explains the overall concepts of the search engine and why it is so popular. This presentation will give you a good idea of what Elasticsearch is all about.

Preview 03:13

There are many terms being used when working with Elasticsearch. This lecture gives you an overview of the most important terminology that will be used throughout this entire course. Terms such as clusters, nodes, indexes and documents are explained, and after completing this lecture, you should have a solid understanding of what an Elasticsearch cluster consists of.


After having introduced Elasticsearch and learned the most important concepts of the search engine, it is now time to learn how to actually install Elasticsearch. The lecture walks through every step of the process, from download to finish, and you will learn how to install Elasticsearch on your own computer.

Preview 03:19

Now that you have learned how to install Elasticsearch, it is time to install a tool named Kibana. The lecture walks through every step of the process, from download to finish, and you will learn how to install Kibana on your own computer.

Preview 04:23

Sense is now Console
Mapping & Indexing
8 Lectures 38:51

Now that all of the needed software has been installed, it is time to add an index to the Elasticsearch cluster. This lecture shows you how to do so, and you will be able to use this knowledge to create an index in your own Elasticsearch cluster.

Preview 04:02

Having created an index, it is also worth knowing how to remove one, which you will learn in this lecture.

Deleting an index

This lecture gives an overview of what mapping is in the context of Elasticsearch. It introduces the concepts of field data types, meta fields as well as explicit and dynamic mapping. You will learn what mapping is and have a general idea about the before mentioned concepts.

Introduction to mapping

Types are being removed

Having introduced mapping in general, this lecture takes a closer look at the various data types that are available for fields within Elasticsearch. You will learn the characteristics of most of the available data types and when to use them.

Field data types

This lecture expands upon an earlier lecture where meta fields were introduced. You will learn what meta fields are, as well as the semantics of each of them, so you will know what they mean when you see them in search results throughout the course.

Meta fields

Now that you have learned about mapping, it is time to add a mapping to an index. You will see how a mapping can be added for a "product" type, where each field and its data type will be defined. This will give you the information that you need to add a mapping.

Adding mappings

An Elasticsearch cluster is no fun without any data in it. In this lecture, you will see how data can be imported into an Elasticsearch index. The test data used in this lecture has been added as material so that you can download the test data file and add it to your own cluster if you want.

Adding test data
Adding & Modifying Data
5 Lectures 17:40

In this lecture, you will see how a document can be added to an index. Specifically, a document of the type "product" will be added, and afterwards, you will know how to add any kind of documents to an Elasticsearch index.

Preview 04:34

Sometimes it can be useful to replace a document with a new version of it. This lecture shows just that, and at the end of it, you will be able to replace documents within an index.

Replacing documents

Instead of replacing entire documents, it is also possible to only update specific fields of a document. The lecture shows how the price of a product can be updated, without having to supply the entire document. Conceptually, this is quite similar to how update queries work within relational databases, and you will be able to apply this knowledge and update documents in your own index.

Updating documents

You have already learned how to add, replace and update documents, but it is also useful to know how to remove documents from an index. This is the focus of this lecture, where a product will removed, and at the end of it, you will know how to issue a simple request to delete a given document.

Deleting documents

In the preceding lectures, you have learned how to add and modify single documents within an index. But what if you need to perform these operations on lots of documents? This lecture shows you how batch processing can be useful for sending batches of requests to a cluster and also discusses the advantages of doing so. You will learn how to perform CRUD operations in batches and when this is a good idea.

Batch processing
Retrieving Data
18 Lectures 01:34:55

Before we get into searching, we begin by simply fetching a document by ID from an index, and you will learn how to do this with a simple request.

Retrieving document by ID

This lecture introduces the basics of searching, without going into details and remains at a theoretical level. The purpose is to give you the most basic information that you need to know about searching, before beginning to perform actual search queries. After completing this lecture, you will have a basic idea about searching in Elasticsearch, and you will be ready to move on to performing search queries in the following lectures.

Introduction to searching

This lecture introduces searching with query strings by issuing basic queries within the request URL. You will learn how to use the query string to perform simple searches such as match queries against an index.

Searching with query strings: Basics

Now that you have learned how to perform simple query string searches, we will expand on this knowledge by going through using boolean logic within search queries. This allows for much more complex queries than what is possible with what was discussed in the previous lecture, and you will learn how to use boolean logic within search queries, by example.

Searching with query strings: Bool query

Now that you have learned the basics of performing query string searches as well as bool queries, we will take a look at phrase queries. Phrase queries can be used to search for phrases within full text fields, rather than just individual terms that we covered in a previous lecture. After completing this lecture, you will understand the concept of phrase queries and be able to perform such queries.

Searching with query strings: Phrase query

This lecture discusses that one must escape special characters when searching with query strings, and concludes on query string searches. At this point, you should have a good idea about when and how to perform searches with query strings.

Searching with query strings: Remarks

Having walked through how to perform searches with query strings, it is time to take a look at the other way of searching in Elasticsearch, namely searching with the query DSL. The query DSL provides a more flexible way of searching that allows for more advanced queries. This lecture introduces the query DSL and shows how to perform simple full text queries. Afterwards, you will know the basics of the query DSL, as well as how to perform simple query DSL searches, namely full text searches.

Searching with Query DSL: Full text queries

Having introduced the query DSL and full text queries in the previous lecture, this lecture introduces term level queries and shows examples of the various term level queries. You will learn the basics of term level queries using the query DSL, and you will be able to perform term level queries yourself, following the provided examples.

Searching with Query DSL: Term level queries

This lecture introduces compound queries and shows how to make use of these to construct advanced search queries. This includes examples of various query types such as the bool query, which allows for using boolean logic within queries, exactly as discussed with the query string searches, only with a different syntax. After completing this lecture, you will know how to construct advanced queries using boolean logic and the most important query types.

Searching with Query DSL: Compound queries

In this lecture, you will learn how to perform searches across indexes and types. Sometimes it is useful to not only search for one particular type, for instance, and this lecture shows you how to do just that.

Searching across indexes and types

This lecture discusses how to use fuzzy searches, something that can be useful to account for typos, for instance. The lecture shows how to perform fuzzy searches with both the query string approach as well as the query DSL. At the end of this lecture, you will have an overall understanding of how fuzzy searches work in Elasticsearch, and will be able to use this knowledge to implement fuzzy searches in an application.

Fuzzy searches

Having looked at fuzzy searches in the previous lecture, it is now time to take a look at proximity searches, which are somewhat similar. In this lecture, you will learn how proximity searches allow for the order of terms to be different within a phrase search.

Proximity searches

Boosting terms can be useful for making one term more important than another. This lecture teaches you how to boost terms within search queries, both with query string searches and query DSL searches.


Filtering results does not affect the relevance scores of documents. This is not the case with query context constraints specified within queries. You will learn the two different query contexts within this lecture, and you will learn when to use one over the other.

Preview 03:08

You might not always want the default result set size to be applicable to your searches. In this lecture, you will learn how to change the size of the result set.

Changing the size of result sets

Pagination is an important concept of Elasticsearch, as it is used for adding search functionality to applications such as web applications. Luckily, pagination is very simple in Elasticsearch, so after this short lecture, you will know how to do pagination.


Sometimes it may be useful to order the results based on one or more fields, much like in relational databases. Learn how to easily sort the result set in this lecture.

Sorting results

Aggregations are incredibly useful for grouping and extracting statistics from the data within an Elasticsearch index. There are three groups of aggregations, but many more types of aggregations. This lecture gives you an overview and examples of the most important types of aggregations that you should know.

Building a Web Application Search Engine
6 Lectures 47:49
This lecture introduces the web application that we will build throughout this section, and also talks about the official client libraries that are available.
Introducing Application & Client Libraries

Having introduced the application as well as client libraries, it is time to add some basic search functionality to the application. This lecture walks through the process of adding a simple match query which searches through the products within the Elasticsearch index.

Adding a simple query

Search queries may result in many matching documents, so the application needs a way for the user to browse through these, without displaying all of the results on a single page. This lecture therefore shows how to add pagination to a search query in the context of a web application.

Preview 08:34

Accounting for spelling mistakes and typos is a nice feature to have for a search engine. This lecture adds fuzziness to the query, such that the matching of documents will be more flexible in regards to the search query.

Adding fuzziness

This lecture adds filters to the search query, such that the user of the web application can filter the results by price range, status and category. This lecture also uses aggregations to fetch the number of documents matching each filter.

Aggregations & Filters

To finish the application, a page for viewing a given product is implemented by simply fetching the corresponding product's document from the index by ID.

Adding product details page
1 Lecture 00:47

This lecture recaps on what was accomplished in this course and includes final notes.

Last words & summing up
About the Instructor
Bo Andersen
4.3 Average rating
875 Reviews
4,488 Students
3 Courses
Lead Developer

My name is Bo Andersen and I am a software developer from Denmark.

I am a software developer who has previously worked a successful company, which operates one of the largest websites in Denmark, before deciding to teach full time. I have worked with programming for a decade, primarily with web development. I have a bachelor's degree in computer science and have worked with programming in my spare time before, during and after completing my education.

If you would like to see my complete resume and experience, please have a look at my LinkedIn profile. I have also been blogging about programming subjects for a few years, so I encourage you to have a look at my website if you are curious.