我们有标签示例:
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"...}]
有什么方法可以解决这个问题吗?
答案 0 :(得分:1)
ElasticSearch关心您正在执行的搜索类型。在这种情况下,默认值是整个单词的匹配项。解决问题的一种方法是使用searchkick gem的partial matches功能。
Tag.search "hello", fields: [:name], match: :word_start
进行更改后,请不要忘记重新编制索引。