2016-11-18 3 views
0

我々はタグの例があります。Searchkick - Elasticsearch - 代わりにホワイトスペースのアンダースコアで名前

hello_my_name_is 

Tag.search "hello" 
=> [] 

しかし、我々は結果で何かを得るいけないsearchkick/elasticsearchでhelloを検索しようとしています。それを得るには、明示的にhello_my_name_isを検索する必要があります。

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

この問題を回避する方法はありますか?

答えて

1

ElasticSearchは、実行している検索の種類を気にします。この場合、デフォルトは単語全体の一致です。あなたの問題を解決する1つの方法は、searchkick gemのpartial matches機能を使用することです。

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

変更した後に再インデックスするのを忘れないでください。

+0

私は '' ':word_middle'''を使ってしまいました – Philip

関連する問題