Books & Videos

Table of Contents

  1. Getting Started

    1. Chapter 1 You Know, for Search…

      1. Installing Elasticsearch
      2. Running Elasticsearch
      3. Talking to Elasticsearch
      4. Document Oriented
      5. Finding Your Feet
      6. Indexing Employee Documents
      7. Retrieving a Document
      8. Search Lite
      9. Search with Query DSL
      10. More-Complicated Searches
      11. Full-Text Search
      12. Phrase Search
      13. Highlighting Our Searches
      14. Analytics
      15. Tutorial Conclusion
      16. Distributed Nature
      17. Next Steps
    2. Chapter 2 Life Inside a Cluster

      1. An Empty Cluster
      2. Cluster Health
      3. Add an Index
      4. Add Failover
      5. Scale Horizontally
      6. Coping with Failure
    3. Chapter 3 Data In, Data Out

      1. What Is a Document?
      2. Document Metadata
      3. Indexing a Document
      4. Retrieving a Document
      5. Checking Whether a Document Exists
      6. Updating a Whole Document
      7. Creating a New Document
      8. Deleting a Document
      9. Dealing with Conflicts
      10. Optimistic Concurrency Control
      11. Partial Updates to Documents
      12. Retrieving Multiple Documents
      13. Cheaper in Bulk
    4. Chapter 4 Distributed Document Store

      1. Routing a Document to a Shard
      2. How Primary and Replica Shards Interact
      3. Creating, Indexing, and Deleting a Document
      4. Retrieving a Document
      5. Partial Updates to a Document
      6. Multidocument Patterns
    5. Chapter 5 Searching—The Basic Tools

      1. The Empty Search
      2. Multi-index, Multitype
      3. Pagination
      4. Search Lite
    6. Chapter 6 Mapping and Analysis

      1. Exact Values Versus Full Text
      2. Inverted Index
      3. Analysis and Analyzers
      4. Mapping
      5. Complex Core Field Types
    7. Chapter 7 Full-Body Search

      1. Empty Search
      2. Query DSL
      3. Queries and Filters
      4. Most Important Queries and Filters
      5. Combining Queries with Filters
      6. Validating Queries
    8. Chapter 8 Sorting and Relevance

      1. Sorting
      2. String Sorting and Multifields
      3. What Is Relevance?
      4. Fielddata
    9. Chapter 9 Distributed Search Execution

      1. Query Phase
      2. Fetch Phase
      3. Search Options
      4. scan and scroll
    10. Chapter 10 Index Management

      1. Creating an Index
      2. Deleting an Index
      3. Index Settings
      4. Configuring Analyzers
      5. Custom Analyzers
      6. Types and Mappings
      7. The Root Object
      8. Dynamic Mapping
      9. Customizing Dynamic Mapping
      10. Default Mapping
      11. Reindexing Your Data
      12. Index Aliases and Zero Downtime
    11. Chapter 11 Inside a Shard

      1. Making Text Searchable
      2. Dynamically Updatable Indices
      3. Near Real-Time Search
      4. Making Changes Persistent
      5. Segment Merging
  2. Search in Depth

    1. Chapter 12 Structured Search

      1. Finding Exact Values
      2. Combining Filters
      3. Finding Multiple Exact Values
      4. Ranges
      5. Dealing with Null Values
      6. All About Caching
      7. Filter Order
    2. Chapter 13 Full-Text Search

      1. Term-Based Versus Full-Text
      2. The match Query
      3. Multiword Queries
      4. Combining Queries
      5. How match Uses bool
      6. Boosting Query Clauses
      7. Controlling Analysis
      8. Relevance Is Broken!
    3. Chapter 14 Multifield Search

      1. Multiple Query Strings
      2. Single Query String
      3. Best Fields
      4. Tuning Best Fields Queries
      5. multi_match Query
      6. Most Fields
      7. Cross-fields Entity Search
      8. Field-Centric Queries
      9. Custom _all Fields
      10. cross-fields Queries
      11. Exact-Value Fields
    4. Chapter 15 Proximity Matching

      1. Phrase Matching
      2. Mixing It Up
      3. Multivalue Fields
      4. Closer Is Better
      5. Proximity for Relevance
      6. Improving Performance
      7. Finding Associated Words
    5. Chapter 16 Partial Matching

      1. Postcodes and Structured Data
      2. prefix Query
      3. wildcard and regexp Queries
      4. Query-Time Search-as-You-Type
      5. Index-Time Optimizations
      6. Ngrams for Partial Matching
      7. Index-Time Search-as-You-Type
      8. Ngrams for Compound Words
    6. Chapter 17 Controlling Relevance

      1. Theory Behind Relevance Scoring
      2. Lucene’s Practical Scoring Function
      3. Query-Time Boosting
      4. Manipulating Relevance with Query Structure
      5. Not Quite Not
      6. Ignoring TF/IDF
      7. function_score Query
      8. Boosting by Popularity
      9. Boosting Filtered Subsets
      10. Random Scoring
      11. The Closer, The Better
      12. Understanding the price Clause
      13. Scoring with Scripts
      14. Pluggable Similarity Algorithms
      15. Changing Similarities
      16. Relevance Tuning Is the Last 10%
  3. Dealing with Human Language

    1. Chapter 18 Getting Started with Languages

      1. Using Language Analyzers
      2. Configuring Language Analyzers
      3. Pitfalls of Mixing Languages
      4. One Language per Document
      5. One Language per Field
      6. Mixed-Language Fields
    2. Chapter 19 Identifying Words

      1. standard Analyzer
      2. standard Tokenizer
      3. Installing the ICU Plug-in
      4. icu_tokenizer
      5. Tidying Up Input Text
    3. Chapter 20 Normalizing Tokens

      1. In That Case
      2. You Have an Accent
      3. Living in a Unicode World
      4. Unicode Case Folding
      5. Unicode Character Folding
      6. Sorting and Collations
    4. Chapter 21 Reducing Words to Their Root Form

      1. Algorithmic Stemmers
      2. Dictionary Stemmers
      3. Hunspell Stemmer
      4. Choosing a Stemmer
      5. Controlling Stemming
      6. Stemming in situ
    5. Chapter 22 Stopwords: Performance Versus Precision

      1. Pros and Cons of Stopwords
      2. Using Stopwords
      3. Stopwords and Performance
      4. Divide and Conquer
      5. Stopwords and Phrase Queries
      6. common_grams Token Filter
      7. Stopwords and Relevance
    6. Chapter 23 Synonyms

      1. Using Synonyms
      2. Formatting Synonyms
      3. Expand or contract
      4. Synonyms and The Analysis Chain
      5. Multiword Synonyms and Phrase Queries
      6. Symbol Synonyms
    7. Chapter 24 Typoes and Mispelings

      1. Fuzziness
      2. Fuzzy Query
      3. Fuzzy match Query
      4. Scoring Fuzziness
      5. Phonetic Matching
  4. Aggregations

    1. Chapter 25 High-Level Concepts

      1. Buckets
      2. Metrics
      3. Combining the Two
    2. Chapter 26 Aggregation Test-Drive

      1. Adding a Metric to the Mix
      2. Buckets Inside Buckets
      3. One Final Modification
    3. Chapter 27 Building Bar Charts

    4. Chapter 28 Looking at Time

      1. Returning Empty Buckets
      2. Extended Example
      3. The Sky’s the Limit
    5. Chapter 29 Scoping Aggregations

    6. Chapter 30 Filtering Queries and Aggregations

      1. Filtered Query
      2. Filter Bucket
      3. Post Filter
      4. Recap
    7. Chapter 31 Sorting Multivalue Buckets

      1. Intrinsic Sorts
      2. Sorting by a Metric
      3. Sorting Based on “Deep” Metrics
    8. Chapter 32 Approximate Aggregations

      1. Finding Distinct Counts
      2. Calculating Percentiles
    9. Chapter 33 Significant Terms

      1. significant_terms Demo
    10. Chapter 34 Controlling Memory Use and Latency

      1. Fielddata
      2. Aggregations and Analysis
      3. Limiting Memory Usage
      4. Fielddata Filtering
      5. Doc Values
      6. Preloading Fielddata
      7. Preventing Combinatorial Explosions
    11. Chapter 35 Closing Thoughts

  5. Geolocation

    1. Chapter 36 Geo-Points

      1. Lat/Lon Formats
      2. Filtering by Geo-Point
      3. geo_bounding_box Filter
      4. geo_distance Filter
      5. Caching geo-filters
      6. Reducing Memory Usage
      7. Sorting by Distance
    2. Chapter 37 Geohashes

      1. Mapping Geohashes
      2. geohash_cell Filter
    3. Chapter 38 Geo-aggregations

      1. geo_distance Aggregation
      2. geohash_grid Aggregation
      3. geo_bounds Aggregation
    4. Chapter 39 Geo-shapes

      1. Mapping geo-shapes
      2. Indexing geo-shapes
      3. Querying geo-shapes
      4. Querying with Indexed Shapes
      5. Geo-shape Filters and Caching
  6. Modeling Your Data

    1. Chapter 40 Handling Relationships

      1. Application-side Joins
      2. Denormalizing Your Data
      3. Field Collapsing
      4. Denormalization and Concurrency
      5. Solving Concurrency Issues
    2. Chapter 41 Nested Objects

      1. Nested Object Mapping
      2. Querying a Nested Object
      3. Sorting by Nested Fields
      4. Nested Aggregations
    3. Chapter 42 Parent-Child Relationship

      1. Parent-Child Mapping
      2. Indexing Parents and Children
      3. Finding Parents by Their Children
      4. Finding Children by Their Parents
      5. Children Aggregation
      6. Grandparents and Grandchildren
      7. Practical Considerations
    4. Chapter 43 Designing for Scale

      1. The Unit of Scale
      2. Shard Overallocation
      3. Kagillion Shards
      4. Capacity Planning
      5. Replica Shards
      6. Multiple Indices
      7. Time-Based Data
      8. Index Templates
      9. Retiring Data
      10. User-Based Data
      11. Shared Index
      12. Faking Index per User with Aliases
      13. One Big User
      14. Scale Is Not Infinite
  7. Administration, Monitoring, and Deployment

    1. Chapter 44 Monitoring

      1. Marvel for Monitoring
      2. Cluster Health
      3. Monitoring Individual Nodes
      4. Cluster Stats
      5. Index Stats
      6. Pending Tasks
      7. cat API
    2. Chapter 45 Production Deployment

      1. Hardware
      2. Java Virtual Machine
      3. Transport Client Versus Node Client
      4. Configuration Management
      5. Important Configuration Changes
      6. Don’t Touch These Settings!
      7. Heap: Sizing and Swapping
      8. File Descriptors and MMap
      9. Revisit This List Before Production
    3. Chapter 46 Post-Deployment

      1. Changing Settings Dynamically
      2. Logging
      3. Indexing Performance Tips
      4. Rolling Restarts
      5. Backing Up Your Cluster
      6. Restoring from a Snapshot
      7. Clusters Are Living, Breathing Creatures