我正在使用带有太阳黑子solr的rails 4.0。我希望这样做:
(read_flag为TRUE)或((read_flag IS NIL)AND(全文 params [:search]是真的))
这是(post.rb)
中的代码:
@search = Post.search do
any_of
with :model_id,params[:model_id]
all_of
with :model_id, nil
fulltext params[:search] do
fields(:title,:tags)
end
end
end
end
但是,上面的代码会生成此错误
undefined method 'fulltext' for #<Sunspot::DSL::Scope:0x007ff641ef2f38>
所以我尝试将all_of
更改为all
。但它没有回归我想要的东西。
模型文件(post.rb)
按照以下
searchable do
integer :user_id
text :title, :boost => 2
integer :model_id
end
有人可以建议我应该如何构建我的查询?无法在stackoverflow上找到任何相关问题。
答案 0 :(得分:0)
我确定您很可能已经走了很久,所以对于可能发现此问题的任何人来说,我都在努力使用any_of和全文搜索。我发现在全文似乎起作用之前结束了合取/析取:
@search = Post.search do
any_of
with :model_id,params[:model_id]
all_of
with :model_id, nil
end
end
fulltext params[:search] do
fields(:title,:tags)
end
end