我用于太阳黑子的宝石和版本是:
sunspot_rails gem 版本 1.2.1
导轨版本 2.3.18
我尝试搜索的查询和搜索方法如下所示:
query_params = { :name => 'Joe Smith',
:email => 'joe.smith@email.com' }
如何搜索带有太阳黑子的模型,以便它通过电子邮件或仅名称进行搜索,因为某些搜索可能是空白的(下面的示例没有按预期工作(?
User.search do
fulltext(query_params[:name], :fields => :name)
fulltext(query_params[:email], :fields => :email)
end
* 我已经重新索引了模型,并且这些字段都可以在模型中搜索*
*编辑*user.rb
模型的设置如下:
class User < ActiveRecord::Base
searchable do
text :name
text :email
end
end
尝试如下简单方法
在模型上
searchable do
text :name
text :email
end
在操作控制器上
@search = User.search do |searcher|
name = [:email]
email= [:email]
searcher.any do
fulltext params[:name], :fields => name
fulltext params[:email], :fields => email
end
end
@users = @search.results #=> carry this to view
重新索引并取得良好效果,重新启动服务器
希望对你有帮助
any_of有帮助吗?
User.search
any_of do
fulltext(query_params[:name], :fields => :name)
fulltext(query_params[:email], :fields => :email)
end
end
或
User.search do
any_of do
with(:name, query_params[:name])
with(:email, query_params[:email])
end
end
尝试这个,因为它是一个文本字段
User.search do
any_of do
keywords query_params[:name], :fields => [:name]
keywords query_params[:email], :fields => [:email]
end
end
资源:https://github.com/sunspot/sunspot/wiki/Fulltext-search