I would like to implement elasticsearch in one of my applications. I am using tire gem for this. But I have troubles to search just partial words. For example ‘oog’ should match ‘google’.
This is how I implemented it:
This is my model:
class Note < ActiveRecord::Base include Tire::Model::Search include Tire::Model::Callbacks ... mapping do indexes :id, index: :not_analyzed indexes :title, boost: 5 indexes :text end ... end
And this is how I search my notes:
Note.search load: true do query do string search_string, default_operator: 'AND' end sort do by :_score, :desc end end.to_a
Everything works great except partial word matching.
I am fighting both, with elasticsearch api and tire gem DSL. I’ve tried to implement different analyser for words, but it did not help:
indexes :title, :analyzer => "ngram", :search_analyzer => "search_ngram_analyzer", :index_analyzer => "index_ngram_analyzer", boost: 5, type: :string
Do you have any experiences with elasticsearch and tire gem? I would be glad for any hint. I already spent few hours in this without any success.
Many thanks in advance