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

DEMo

Thanks




@skorfmann

Elasticsearch on Rails

By skorfmann

Elasticsearch on Rails

  • 1,049