2015-07-20 46 views
0

我在ROR中使用太陽黑子solr,我需要幫助創建一個使用兩個表的可搜索塊(兩個表的連接) 我想要在執行時形成的指標是:在太陽黑子solr + rails中使用兩個表索引4

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.And我想他們是存儲領域(沒有數據庫命中)。

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

任何幫助嗎?

回答

0

如果刪除存儲爲solr/sunspot記錄的關聯記錄,則將別無選擇,只能重新索引該記錄。

+0

我從table_two刪除記錄後重新編制索引...但我仍然在搜索結果中獲得:'「title」:「這是標題」,「id」:null' ....我沒有要id爲空。我希望它不會成爲搜索結果...... – smanvi12

0

所以要解決這個問題,我在我的控制器中做了一些類似於without(:id,nil)的事情,我得到了我想要的結果。

雖然我不確定它的正確方法。