我在我的rails应用程序中使用太阳黑子solr。
我有2个表,表A和表B.表A包含也出现在B中的ID。
我只需要在表A中找到的行上显示和执行搜索,而不是在表B中。 可搜索的属性在model.rb中定义如下:
searchable do
text :bk_id
long :bk_id
long :tableb_bk_id do
tableb.nil?? '' : (tableb.bk_id.nil? ? '' : tableb.bk_id)
end
end
如何过滤结果,以便所有搜索和默认搜索返回的行仅包含在表A中找到的ID,而在B中找不到。
非常感谢你的帮助。
答案 0 :(得分:0)
以下是解决上述问题的步骤。
步骤1:查找表A中需要排除的所有行
第2步:做类似于以下代码的事情
post = Post.find(params[:id])
Sunspot.search(Post) do
without(post)
end
without
子句将排除您不希望在结果集中显示的行。
希望这对某人有帮助