Duration
2 days
What you'll learn
- How to build a powerful search engine with Elasticsearch
- The theory of Elasticsearch and how it works under-the-hood
- Write complex search queries
- Be proficient with the concepts and terminology of Elasticsearch
Introduction
- Introduction to the course
- Introduction to Elasticsearch
- Overview of the Elastic Stack
Getting Started
- Overview of installation options
- Running Elasticsearch & Kibana in Elastic
- Installing Elasticsearch on Windows
- Exploring the Elasticsearch directory
- Installing Kibana on Windows
- Understanding the basic architecture
- Inspecting the cluster
- Sending queries with cURL
- Sharding and scalability
- Sharding
- Understanding replication
- Replication
- Adding more nodes to the cluster (for development)
- Overview of node roles
Managing Documents
- Creating & deleting indices
- Indexing documents
- Retrieving documents by ID
- Updating documents
- Scripted updates
- Upserts
- Replacing documents
- Deleting documents
- Understanding routing
- How Elasticsearch reads data
- How Elasticsearch writes data
- Understanding document versioning
- Optimistic concurrency control
- Update by query
- Delete by query
- Batch processing
- Importing data with cURL
Mapping
- A word on document types
- Introduction to mapping
- Dynamic mapping
- Meta fields
- Field data types
- Adding mappings to existing indices
- Updated query
- Changing existing mappings
- Mapping parameters
- Adding multi-fields mappings
- Defining custom date formats
- Picking up new fields without dynamic mapping
Analysis & Analyzers
- Introduction to the analysis process
- A closer look at analyzers
- Using the Analyze API
- Understanding the inverted index
- Analyzers
- Overview of character filters
- Overview of tokenizers
- Overview of token filters
- Overview of built-in analyzers
- Configuring built-in analyzers and token filters
- Creating custom analyzers
- Using analyzers in mappings
- Adding analyzers to existing indices
- A word on stop words
Introduction to Searching
- Search methods
- Searching with the request URI
- Introducing the Query DSL
- How searching works
- Understanding query results
- Understanding relevance scores
- Debugging unexpected search results
- Query contexts
- Full text queries vs term level queries
- Basics of searching
Term Level Queries
- Introduction to term level queries
- Searching for a term
- Searching for multiple terms
- Retrieving documents based on IDs
- Matching documents with range values
- Working with relative dates (date math)
- Matching documents with non-null values
- Matching based on prefixes
- Searching with wildcards
- Searching with regular expressions
- Term Level Queries
Full Text Queries
- Introduction to full text queries
- Flexible matching with the match query
- Matching phrases
- Searching multiple fields
- Full Text Queries
Adding Boolean Logic to Queries
- Introduction to compound queries
- Querying with boolean logic
- Debugging bool queries with named queries
- How the “match” query works
Joining Queries
- Introduction to this section
- Querying nested objects
- Nested inner hits
- Mapping document relationships
- Adding documents
- Querying by parent ID
- Querying child documents by parent
- Querying parent by child documents
- Multi-level relations
- Parent/child inner hits
- Terms lookup mechanism
- Join limitations
- Join field performance considerations
Controlling Query Results
- Specifying the result format
- Source filtering
- Specifying the result size
- Specifying an offset
- Pagination
- Sorting results
- Sorting by multi-value fields
- Filters
Aggregations
- Introduction to aggregations
- Metric aggregations
- Introduction to bucket aggregations
- Document counts are approximate
- Nested aggregations
- Filtering out documents
- Defining bucket rules with filters
- Range aggregations
- Histograms
- Global aggregation
- Missing field values
- Aggregating nested objects
Improving Search Results
- Introduction to this section
- Proximity searches
- Affecting relevance scoring with proximity
- Fuzzy match query (handling typos)
- Fuzzy query
- Adding synonyms
- Adding synonyms from file
- Highlighting matches in fields
- Stemming
Programme scope, delivery arrangements and suitability are confirmed during enquiry.