2014-10-29 3 views
1

У меня проблема с интеграцией поиска и поиска elastics. Вот что у меня есть, как сейчас:Rails Elasticsearch + Searchkick

Product records: 
id: 1 
title: "Electric Fan" 

id: 2 
title: "Stove" 

id: 3 
title: "Stoven" 

id: 4 
title: "Stovener" 

Вот моя модель

class Product < ActiveRecord::Base 
    searchkick 
end 

Но когда я иду на консоли рельсы и попытаться найти это только дает мне один результат:

results = Product.search("Stove") 
results.map(&:title) # prints ["Stove"] 

Я не знаю, почему он генерирует только один результат, который на самом деле должен генерировать три. Я установил и убедился, что elasticsearch запущен.

Есть ли что-нибудь, что я пропустил с этим?

ТИА

+0

Можете ли вы предоставить свое сопоставление для этого индекса? –

ответ

3

Читайте документацию:

По умолчанию результаты должны совпадать слово целиком - спина не будет соответствовать рюкзак. Вы можете изменить это поведение с:

class Product < ActiveRecord::Base 
    searchkick word_start: [:name] 
end 

И искать (после переиндексации):

Product.search "назад", поля: [{имя:: word_start}]

ИСТОЧНИК - https://github.com/ankane/searchkick#partial-matches