使用SearchKick进行通配符搜索

时间:2015-03-11 07:31:48

标签: ruby-on-rails ruby search elasticsearch searchkick

有没有办法在下面提到的单词和单词之前使用通配符。

User.search "*" + "admi"+"*"

或使用SearchKick gem解决此类问题的任何其他解决方案。

1 个答案:

答案 0 :(得分:2)

希望现在还为时不晚。

您希望关键字出现在文本的中间,对吗?您应该使用Partial Matches作为搜索选项。

例如,在型号User:

class User < ActiveRecord::Base
  searchkick text_middle: [ :name ]
end

搜索:

User.search("admi", fields: [{name: :text_middle}]).each do |user|
  # Do something with user
end

如果搜索结果为空,请在搜索前尝试User.reindex