Searchkick - Elasticsearch - 带有下划线而不是白色的名称 space

Searchkick - Elasticsearch - Names with underscore instead of white space

我们有标签示例:

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

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