2010-10-23 15 views
0

我們正在維護一個包含大約20mm文檔的Lucene索引。搜索查詢的性質使得索引和查詢可以輕鬆地在不同索引之間進行拆分。一個進程中的多個IndexReader/Writer(Lucene)

爲了實現我們需要在內存中保留很多(可能是數千)IndexWriters或IndexReaders/Searchers來處理索引和查詢這些indiceies中的每一個(查詢不跨越多個索引)。

我需要知道這將導致的內存壓力,以及任何人可以建議的潛在解決方案。

回答

3

您可能想看看Solr,它支持創建和管理多個索引(稱爲核心)。如果需要,它還將處理分佈在多個節點上的所有工作。

這就是說,每個索引的內存開銷非常低(按設計)。我認爲這是類似於每個文檔一個字節,然後是唯一條目除以256的數量。

0

我想知道您多久更新一次索引,是否有實時要求? 我正在使用java lucene項目,那麼你可以看看這個開源項目,Linked-In從一些內部工作中衍生出來。 http://sna-projects.com/zoie/

只要搜索內存壓力取決於你是否按索引字段的值排序結果。在這種情況下,內部lucene設施的字段緩存在某些情況下會產生內存壓力。

我希望這會有所幫助。