簡體   English   中英

NHibernate搜索聚類Lucene索引

[英]NHibernate Search Clustered Lucene Index

我們正在將要集群的應用程序中使用NHibernate Search。 我一直在閱讀維護單獨集合的方法,尤其是主/從配置,並且我想知道如果目前確實有實現的話,該如何使用MSMQ來實現它。 JMS實現(如《 NHibernate搜索中的操作》中所述)對我來說似乎有些令人生畏,尤其是當我們使用.NET環境時。

另外,對於為lucene集合實例化本地RAMDirectory的建議,我也樂於接受。 我知道Lucene可以從FSDir構建RAMDir,而且我知道如何使用空白RAMDir初始化NHibernate應用,但是當使用現有(網絡共享)FSDir的RAMDir初始化應用時,我會有些迷失。

或實際上是任何其他方法。

干杯,史蒂夫

實際上,我最近遇到了這個問題。 主要是因為我們在多個Web應用程序上共享了索引,以便實時更新索引。 但是,我們遭受了索引損壞的困擾,無法真正弄清原因,以及無法在集群環境中工作的事實。

我的方法是:使用一種服務,該服務以非常頻繁的時間間隔示意性地索引新實體,並以一定的時間間隔重新索引所有內容。 我還自動運行優化,因為NHSearch似乎還不支持自動優化。

在應用程序啟動時,我將所有內容都索引到RAMDirectoryProvider中。

您做出的選擇在很大程度上取決於您要索引的數據,對數據延遲的敏感程度以及更改的頻率。 以我為例,這是為了允許在網站的產品數據中進行文字搜索,因此任何延遲都可以。

我對Master-Slave提供程序進行了一些簡短的研究,但是我認為NHSearch相對於原始Java實現而言是相當虛構的。

對我而言,最佳解決方案是擁有一個Master-Master提供程序,該提供程序將對所有節點上的索引進行所有更新。 我還沒有研究自己編寫DirectoryProvider會做多少工作,但這是一個選擇,但也需要很多努力。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM