Searchkick - Elasticsearch - 用下划线代替空格
问题描述:
名,我们有标签例如: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"...}]
有没有办法解决这个问题?
答
ElasticSearch关心您正在执行的搜索类型。在这种情况下,默认值是整个单词的匹配。解决问题的一种方法是使用searchkick gem的partial matches功能。
Tag.search "hello", fields: [:name], match: :word_start
在做出更改后,请不要忘记重新索引。
我结束了使用''':word_middle''' – Philip