【问题标题】:Partial match not working for phone number field using searchkick部分匹配不适用于使用 searchkick 的电话号码字段
【发布时间】:2014-12-30 09:39:11
【问题描述】:

当查询指定如下,即提供完全匹配时,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]) 这个查询没有给出任何结果。

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

有人知道吗?

【问题讨论】:

    标签: ruby-on-rails elasticsearch


    【解决方案1】:

    如果您希望电话号码字段和 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]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-23
      相关资源
      最近更新 更多