当查询指定如下,即提供完全匹配时,然后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/