Elasticsearch
on Rails
@skorfmann
Elasticsearch?
"search and analyze any data"
- Lucene Search Engine
-
Clustered Search Server
- REST API
Apache Lucene
- Indexing Data
- Analyzing Data
- Tokenizing
- Stemming
- Filtering
- Locations
- Relevance Scoring
Tokenizing
- Word Boundaries
- Patterns
- E-Mails
- Phone Numbers
- URLs
- Currencies
Stemming
reduce inflected or derived words to their base / root form
- Fishing, Fish, Fisher, Fished > Fish
- Best, Better > Good
Filtering
- Remove Stop-Words
- Markup (e.g. HTML)
Understanding Locations
-
Proximity Search
- Bounding Boxes
- Polygons
Relevance scoring
- Which result should be shown first
- How many matches
- Boost user relevant results
Document oriented
- JSON Storage
-
No need to define a Schema
- Schema can be provided
Gems
- Chewy
-
Elasticsearch Rails
- Searchkick
- (Retire)
CHEWY
-
Multi-Model Indexes
- Every Index is observable
- Bulk Indexing
- Rich Ruby API
- Separation of Concerns
- Compatible to Kaminari