ruby-on-rails - Searchkick-Elasticsearch-带下划线而不是空格的名称

标签 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"...}]

有什么办法可以解决这个问题?

最佳答案

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/

相关文章:

ruby-on-rails - Sidekiq 幂等性、N+1 查询和死锁

ruby-on-rails - 是否可以使用 Rails 渲染 js 文件并缩小输出?

regex - 如何在Elasticsearch正则表达式中排除子字符串

elasticsearch - 筛选聚合中的多值字段

php - 如何使用 PHP 中的访问 key 连接到 AWS Elasticsearch 服务?

ruby-on-rails - Searchkick Elasticsearch引发400错误

ruby-on-rails - Rails 5.1 - 允许使用 JSON 参数,但在日志中仍显示为未经允许

ruby-on-rails - Searchkick neo4j:搜索不起作用?

ruby-on-rails - Searchkick 按按钮过滤

ruby-on-rails - Rails 4 中的 Mongoid 1-N 关系(一对多)