我在ROR中使用sunspot-solr,我需要使用两个表创建可搜索块的帮助。(两个表的连接)当索引形成时,我想要执行的查询是:
SELECT a.id,a.title
FROM table_one a,table_two b
WHERE a.status=1
AND a.id=b.id
AND b.status=1 我希望“标题”字段是可搜索的(文本),只有当id存在于两个表中,都有状态1,我希望他们是存储的字段(没有数据库命中)。
class TableOne
has_many :table_twos
searchable do
text :title, :stored => true
string :status, :stored => true
string :id, :multiple => true, :stored => true do
table_twos.map(&:id)
end
end当我搜索一个单词时,我得到了5个结果。
但是当我从table_two中删除其中一个结果的条目并再次搜索同一个词时..我仍然得到了5个结果,而我应该只得到另外4个结果。
有什么帮助吗?
发布于 2015-07-20 21:33:52
如果删除存储为solr/太阳黑子记录的关联记录,您将别无选择,只能对该记录重新编制索引。
发布于 2015-07-21 14:29:30
所以为了解决这个问题,我在我的控制器中做了一些类似without(:id,nil)的事情,我得到了我想要的结果。
但我不确定这是不是正确的方式。
https://stackoverflow.com/questions/31512210
复制相似问题