部分匹配不适用于使用searchkick的电话号码字段

时间:2014-12-30 09:39:11

标签: ruby-on-rails elasticsearch

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

  

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

但是当提供部分查询,即没有完全匹配时,则不会获得搜索结果。

  

User.search(" 9898",字段:[{first_name :: word_start},:middle_name,   :last_name,:phone_number])此查询不会给出任何结果。

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

有人对此有所了解吗?

1 个答案:

答案 0 :(得分:0)

如果您希望部分匹配电话号码字段以及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]