ruby-on-rails - 使用SearchKick的部分匹配不适用于电话号码字段

标签 ruby-on-rails elasticsearch

当查询指定如下,即提供完全匹配时,然后searchkick给出结果。

User.search("9898989898", fields: [{first_name: :word_start}, :middle_name, :last_name, :phone_number])



但是,如果提供部分查询(即不完全匹配),则不会获得搜索结果。

User.search("9898", fields: [{first_name: :word_start}, :middle_name, :last_name, :phone_number]) This query does not give any result.



注意:查询可以是first_name,middle_name和last_name的字符串,而数字可以是phone_number的数字

有人对此有想法吗?

最佳答案

如果要部分匹配电话号码字段以及first_name,则需要在两个字段中都提供word_start。您可以尝试以下方法:

User.search("9898", fields: [{first_name: :word_start}, :middle_name, :last_name, {phone_number: :word_start}]).

并且在用户模型中,请同时填写两个字段
searchkick word_start:[:first_name,:phone_number]

关于ruby-on-rails - 使用SearchKick的部分匹配不适用于电话号码字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27702937/

相关文章:

javascript - Rails - 使用新表条目刷新页面

elasticsearch - ElasticSearch,从 Assets 中搜索最大ID

elasticsearch - Fluentd Elasticsearch Kibana记录动态索引GEOPOINT映射

elasticsearch - Grafana在Ansible上提供Elasticsearch数据存储

c# - 使用 NEST 6.0 for Elasticsearch 枚举动态命中结果

ruby-on-rails - 将 Amazon Simple Notification service SNS 与 ruby​​ 结合使用

ruby-on-rails - 使用 Redis pub/sub 创建太多线程

mysql - 使用 Ruby 中的区域将字符串转换为日期

ruby-on-rails - rake assets :precompile and RAILS_ENV=production rake assets:precompile? 之间有什么区别

elasticsearch - 在NEST 2.3.3中(由NEST 1.6.2升级)替换了TermsExecution。