2012-12-14 34 views
2

我有一個使用在Heorku上運行的Spring + JPA + Hibernate構建的應用程序,並且我使用Hibernate-Search for FullTextSearch。在我的本地機器上,我將索引存儲在文件系統上。我在persistence.xml中進行配置。在Herku上進行休眠搜索

<property name="hibernate.search.default.directory_provider" 
    value="filesystem"/> 
<property name="hibernate.search.default.indexBase" 
    value="/opt/lucene/indexes"/> 

的Heroku只讀訪問文件系統,然後我索引存儲在內存中,但它是沒有最好的方法,因爲索引丟失服務器實例重新啓動時。如何最好的方式來做到這一點?有一種方法可以將Hibernate搜索與WebSolr或其他功能集成在一起嗎?

+0

Heroku沒有隻讀文件系統(在Cedar上);因爲多個節點可能會失去同步,所以只能對寫入文件系統感到沮喪。如果您確定索引將在每個節點上以相同方式生成,或者在每個節點上具有不同索引並不成問題,那麼您可以寫入文件系統。儘管如此,我仍然贊成將你的應用程序連接到Heroku的許多優秀搜索插件之一的方法。 –

+0

Heroku有一個短暫的文件系統,「這意味着你不能動態地寫入文件系統進行半永久存儲」。搜索的附加組件可以與hibernate搜索集成嗎? – maykoone

+0

是的,也忘了提及ti的短暫,所以你將不得不重新索引每次啓動。不幸的是,我不確定如何將Hibernate連接到其中一個附加組件,而不是連接其他系統,所以希望有人會對該信息留下正確的答案。 –

回答

0

我找到了解決方案。我將在heroku上使用mongodb插件來存儲我的索引,我已經實現了一個基於mongodb目錄的lucene的hibernate搜索目錄提供程序,並且可以在本地機器上正常工作。

+0

遵循Andrew的建議,謝謝 – maykoone