
Piotr shares practical Elasticsearch and RabbitMQ expertise from international projects since 2011, highlighting hands-on lectures and best practices to help you gain confidence in Elasticsearch.
Set up a single node Elasticsearch cluster locally for hands-on practice. Use Kibana DevTools or Postman to build and test optimized queries.
Learn how Elasticsearch accelerates search over large data by indexing active data and serving as a scalable indexer not a database.
Explore Elasticsearch basics by defining nodes, clusters, and shards, where documents in JSON are stored across primary and replica shards within indices. Learn mappings, shard limits, and replica placement rules.
See how Elasticsearch distributes queries across nodes and shards, processes them in parallel, and merges partial results. Learn about index patterns, pagination, avoiding wildcards, and tuning mappings.
Explore how the inverted index maps terms to document identifiers and how the source stores original JSON for fetch, with mapping and analyze to optimize query performance.
Deploy a simple elastic stack on your local laptop by running a single node Elasticsearch and Kibana without editing any single configuration file, Docker, or cloud services.
Ingest Apache logs and book datasets into Elasticsearch via the Index API, generating documents and IDs, then optimize mappings with text and keyword fields for faster queries.
Explore Elasticsearch query types and the domain specific language for defining queries, mastering leaf and compound queries, leveraging term, range, and bool queries, with aggregations, highlights, and type-ahead support.
Learn to execute Elasticsearch queries using the search API with get or post, including match all and term queries, index patterns, and pagination.
Explore the term query in Elasticsearch for exact-value matches, with lowercase token handling and boosting, and use bool queries across title and description to influence document scoring.
Explore the bool query and its four clauses—must, filter, must_not, and should—and see how they model and, or, and not operations to influence document scoring.
Explain the difference between query context and filter context, where query context scores documents and filter context enables cacheable, score-free filtering using numbers, dates, booleans, and enums.
Explore range queries in Elasticsearch, applying greater than, greater than equal, less than, and less than equal across numeric, date, and IP fields, with date math.
This lecture explains prefix and wildcard queries as term-level searches on an inverted index, highlighting performance pitfalls and how custom analyzers can generate more tokens to improve search results.
Explore the regexp query in Elasticsearch, comparing it with wildcard and term-level queries, and learn the supported regex operators (dot, square brackets, plus, pipe, curly braces) and practical performance cautions.
Learn how the match query uses the analyzer used to index the document to tokenize and lowercase terms, its equivalence to bool queries, and profiling with fuzziness options.
Explore the query string query as a strict syntax parser that supports brackets and logical operators to build complex, multi-field search queries.
Explore how fuzzy query uses the Levenshtein distance to measure one-character edits and rank approximate matches in Elasticsearch, with fuzziness, transpositions, and auto mode (max distance 2).
Explore span near queries to rank results by term proximity, using in_order and sloop controls to match close terms in content such as pdf-extracted text and patents.
Explore geo queries in Elasticsearch, including geodistance and geo bounding box filters, and learn how geopoint and geoshape mappings, WKT notation, JSON object or JSON array enable efficient location searches.
Explore how nested objects work in Elasticsearch, why Lucene flattens nested data, and how to use a nested path and nested queries to preserve relationships and enable precise searches.
Explore reverse search with the percolate query to implement notifications, replacing pooling with matching documents against stored queries; deploy dedicated percolation indices for scalable classification and enrichment.
Explore how Elasticsearch aggregations work, including metric, bucketing, and pipeline aggregations, with tips on DocValues, optimization by setting size to 0, and practical examples.
Explore metric aggregations in Elasticsearch, including average, max, min, value count, top hits, and scripted metrics; learn caching, Kibana querying, and runtime mappings.
Explore bucketing aggregations in Elasticsearch, including terms, histogram, and date histogram, along with geohash grid and adjacency matrix to analyze data distributions and connections.
Explore pipeline aggregations in Elasticsearch by combining date_histogram bucketing with a max metric on bytes and using bucket paths to compute per-bucket results.
Learn how Elasticsearch highlighting returns contextual snippets from searched fields using unified, plain, and fast vector highlighters, with term vectors, fragment size, and inner hits for nested queries.
Explore Elasticsearch's suggest feature for spelling correction with term and phrase suggesters, and for fast typeahead with completion or context suggesters. Learn dictionary design and memory-latency trade-offs.
Explore search templates in Elasticsearch and learn how mustache templates store complex queries for reuse via a template identifier. Test with underscore render and adjust parameters without altering the query.
Explore source filtering in Elasticsearch to control what fields are returned and indexed, compare query and indexing scenarios, and understand its effects on disk usage, partial updates, and recovery source.
Use the scroll API to retrieve large Elasticsearch result sets by creating a scroll context and fetching pages with a scroll identifier.
Learn common good practices to make Elasticsearch queries more efficient, balancing hardware, mappings, and data ingestion with data consumers' needs to optimize performance.
Explore why index naming conventions matter in Elasticsearch and how a generic-to-specific pattern with date and version, aligned with ILM, improves distribution, mappings, queries for logs and metrics using logs-web-apache*.
Identify bottlenecks in complex Elasticsearch queries using Search Profiler and the Profile API, and visualize per-shard timings in Kibana.
Perform Elasticsearch performance testing to simulate heavy production load, measure throughput and latency, and ensure SLA using ramp up and flatline scenarios with JMeter and perftest.jmx.
Learn to use Elasticsearch slowlog to monitor long-running queries and indexing operations, set thresholds for search and fetch phases, and audit performance per shard with dedicated slowlog files.
Explore how custom routing in Elasticsearch groups related documents on shards, using routing keys and routing partition size to boost query performance while preserving even shard distribution.
Discover how Elasticsearch analyzers can improve search by defining stop words, synonyms, ASCII folding, and custom tokenizers for indexing and querying.
Understand Elasticsearch custom scoring for relevance using tf-idf, bm25 factors, term frequency, and idf, with function score and script score, with boosting and explain for better ranking.
Celebrate completing the course by mastering common Elasticsearch queries, analyzing their performance, and applying best practices to effectively search with Elasticsearch clusters.
This course will guide you how to properly and effectively use Elasticsearch Query DSL (Domain Specific Language) based on JSON to define queries. Additionally I present most commonly used Search APIs that will help you fully understand how Elasticsearch works and how to use it to build modern search applications, like Google, Bing, Yahoo!, DuckDuckGo etc. Course contains a lot of practical knowledge, examples and hands-on lectures.
If you are a beginner, don't worry, course guides you from very generic concept of lucene inverted index and role of search engines like Elasticsearch) in the system architecture to more advanced features.
If you have no data to play with, don't worry we import sample datasets at the very beginning of this course.
If you already have experience with Elasticsearch, you will enjoy the advanced part of it. Maybe you wonder if the way that use use Elasticsearch is the proper way and maybe your queries can return results faster ? If so, then course will help you find answers to that questions, optionally grounding and strengthening your exiting experience. No matter what is your existing level of knowledge, after completing this course, you will be ready to become a true professional in the Elasticsearch community.
In this course, I will show you how to properly use Elasticsearch product. We will start by explaining basic terms and role of Elasticsearch in the system architecture. Then, after importing sample data, we will go through term based queries, range queries, specialized queries, geo queries, nested queries and so on. We will get to know how to build effective notifications by using percolate queries or aggregate and analyze results using aggregations.
I’ll show you how to do highlighting, suggestions, spell corrections, and template your queries. At the end we will cover tuning and optimization best practices, query profiling, performance testing and customize default routing and scoring.
Overall, you'll learn how to properly and effectively query Elasticsearch in the easy way, without spending hours reading manuals.
I hope to see you in the first lecture.