Overview of Elasticsearch Developer
This training is aimed for software developers who wish to build search and analytics solutions using Elasticsearch.
This training starts with discussion of the Elasticsearch architecture, including its distributed model and search API followed by an explanation of Elasticsearch’s functionality and how to best integrate it into an existing application.
Duration
3 Days
Prerequisite for Elasticsearch Developer
Participants must know the basics of Elasticsearch
Course Outline for Elasticsearch Developer
Introduction to Elasticsearch
- The Story of Elasticsearch
- The Components of Elasticsearch
- Documents
- Indexes
- Indexing Data
- Searching Data
- The Bulk API
- Hands-on Lab (30 minutes): Index a dataset, then search the data using Elasticsearch
The Search API
- Introduction to the Search API
- URI Searches
- Request Body Searches
- The match Query
- The match_phrase Query
- The range Query
- The bool Query
- Hands-on Lab (45 minutes): Write various queries that search documents using Search API queries like match, match_phrase, range and bool
Text Analysis
- What is Analysis?
- Building an Inverted Index
- Analyzers
- Custom Analyzers
- Character Filters
- Tokenizers
- Token Filters
- Defining Analyzers
- Synonyms
- How to Choose an Analyzer
- Segments
- Hands-on Lab (45 minutes): Perform the steps for configuring text analysis in Elasticsearch; use the Analyze API to see how the built-in analyzers work; define custom analyzers by configuring character filters, tokenizers and token filter
Mappings
- What is a Mapping?
- Dynamic Mappings
- Defining Explicit Mappings
- Adding Fields
- Dive Deeper into Mappings
- Specifying Analyzers
- Dynamic Templates
- Index Templates
- Hands-on Lab (45 minutes): Define a custom mapping for a new index; use an index template to customize a mapping
More Search Features
- The Anatomy of a Search
- Term-based Queries
- Filters
- The match_phrase_prefix Query
- The multi_match_Query
- Fuzziness
- Highlighting
- More Like This
- Hands-on Lab (45 minutes): See how a terms query works in Elasticsearch; write multi_match and more_like_this queries; see how the fuzziness parameter works and how to highlight search terms
The Distributed Model
- Starting a Node
- Creating an Index
- Starting a Second Node
- Shards: Distribution of an Index
- Distributing Documents
- Replication
- Split Brain
- Other Node Types
- Development vs. Production Mode
- Hands-on Lab (30 minutes): Startup a multi-node cluster; see how documents indexed into
- Elasticsearch are not immediately available for searching.
Working With Search Results
- Relevance
- Boosting Relevance
- DFS Query-then-fetch
- Sorting Results
- Doc Values and Fielddata
- Pagination
- Scroll Searches
- Choosing a Search Type
- Hands-on Lab (30 minutes): Run queries that involve controlling the results of searches using relevance boosting, sorting, and pagination
Aggregations
- What are Aggregations?
- Types of Aggregations
- Buckets and Metrics
- Common Metrics Aggregations
- The range Aggregation
- The date_range Aggregation
- The terms Aggregation
- Nesting Buckets
- Hands-on Lab (45 minutes): Perform various metrics and bucket aggregations on the products index and also on some stock market trade data
More Aggregations
- Global Aggregation
- The missing Aggregation
- Histograms
- Date Histograms
- Percentiles
- Top Hits
- Significant Terms
- Sorting Buckets
- Hands-on Lab (45 minutes): Perform various advanced bucket and metrics aggregations on the stocks index
Handlings Relationships
- The Need for Data Modeling
- The Need for Nested Types
- Nested Types
- Querying a Nested Type
- Sorting on a Nested Type
- The Nested Aggregation
- Parent / Child Types
- The has_child Query
- The has_parent Query
- Hands-on Lab (30 minutes): Define and use a nested mapping type and a parent / child mapping type
Painless Scripting
- Learn how to use the new Painless scripting language in Elasticsearch and discuss use cases for scripting, including the Reindex and Update by Query APIs
Ingest Pipelines
- Learn how to use the new Painless scripting language in Elasticsearch and discuss use cases for scripting, including the Reindex and Update by Query APIs
Handlings Relationships
- Learn how to implement and query documents that contain arrays of objects, and how to implement a parent/child relationship in Elasticsearch
Geolocation
- Learn how to map and index geo points and shapes and also how to use the various geo search capabilities of Elasticsearch
Improving Search Performance
- Learn some of the advanced search and aggregation techniques, including cross cluster search, pipeline aggregations and some advanced mapping techniques
- Performance Tuning, Troubleshooting Tips
- Monitoring with Xpack