2016-04-14 44 views
4

我使用太陽黑子Solr的索引和在我們與MangoDB 數據庫(蒙戈映射器)的Ruby on Rails應用程序Solr的黑子 - 重建索引對象不會自動運行

的搜索效果很好搜索,但對象不是當我對數據庫進行更改時自動索引到Solr。

我試圖手動指數類本身:

Top.reindex Sunspot.commit 

或者說,我加在sunspot.yml: auto_commit_after_request:

<autoCommit> 
<maxDocs>10000</maxDocs> 
<maxTime>15000</maxTime> 
</autoCommit> 
:真 我也與一些solrconfig.xml中間隔自動提交

所有這些解決方案都無法自動重新索引我的對象,除非我使用rake任務重新索引所有對象:

bundle exec rake sunspot:reindex 

任何其他解決方案?

非常感謝。

回答

3

太陽黑子應該默認情況下重新索引,如果您使用ActiveRecordcheck this)。

問題在於你使用的是Mongo,而不是AR。我發現了一個集成太陽黑子mongo映射器爲此目的的寶石。你可能想check it,看看它是否解決您的問題上自動索引 - 寶石應該解決這個問題(檢查this

如果這不起作用,你可以嘗試在參與模式做一些手工索引,類似於ActiveRecord鉤子,例如用戶型號:

after_save { |user| Sunspot.index!(user) } 
after_destroy { User.reindex; Sunspot.commit } 
+0

我已經試過這個寶石,但它並沒有解決我的問題。 謝謝:) –

+0

@ user3625835我已經更新了答案,看它是否有效。我不知道你是否試過這樣的鉤子,就像我告訴你的一樣 - 如果你知道,讓我知道;) –

+0

它的工作原理!非常感謝 :) ! –