我们有标签示例:
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"...}]
有什么办法可以解决这个问题?
最佳答案
ElasticSearch关心您执行的搜索类型。在这种情况下,默认值是整个单词的匹配项。解决您的问题的一种方法是使用searchkick gem的partial matches功能。
Tag.search "hello", fields: [:name], match: :word_start
进行更改后,请不要忘记重新索引。
关于ruby-on-rails - Searchkick-Elasticsearch-带下划线而不是空格的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40682575/