2016-11-18 93 views
0

名,我們有標籤例如:Searchkick - Elasticsearch - 用下劃線代替空格

hello_my_name_is 

Tag.search "hello" 
=> [] 

但是,試圖尋找hello與searchkick/elasticsearch我們沒有得到結果什麼時候。我們明確需要搜索hello_my_name_is以獲取它。

Tag.search "hello_my_name_is" 
=> [{name: "hello_my_name_is"...}] 

有沒有辦法解決這個問題?

回答

1

ElasticSearch關心您正在執行的搜索類型。在這種情況下,默認值是整個單詞的匹配。解決問題的一種方法是使用searchkick gem的partial matches功能。

Tag.search "hello", fields: [:name], match: :word_start 

在做出更改後,請不要忘記重新索引。

+0

我結束了使用''':word_middle''' – Philip