Searchkick - Elasticsearch - 使用下划线而不是空格命名

时间:2016-11-18 17:10:52

标签: ruby-on-rails elasticsearch searchkick

我们有标签示例:

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 个答案:

答案 0 :(得分:1)

ElasticSearch关心您正在执行的搜索类型。在这种情况下,默认值是整个单词的匹配项。解决问题的一种方法是使用searchkick gem的partial matches功能。

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

进行更改后,请不要忘记重新编制索引。