簡體   English   中英

用於經常更改的文檔的Lucene索引策略

[英]Lucene indexing strategy for documents that change often

我正在將搜索功能集成到桌面應用程序中,並且正在使用香草Lucene。 該應用程序處理(可能是數千個)POJO,每個POJO都具有自己的一組鍵/值屬性。 當在我的應用程序和Lucene之間映射模型時,我最初想到為每個POJO分配一個Document並將這些屬性添加為Fields。 這種方法在進行索引和搜索時效果很好,但主要缺點是,每當POJO更改其屬性時,我都必須再次重新索引所有屬性,即使是未更改的屬性,也要更新索引。 我一直在考慮改變我的方法,而是為每個屬性創建一個Document,並為同一POJO中的所有Document分配相同的ID。 這樣,當POJO屬性發生更改時,我只會更新其相應的Document,而不會為所有其他未更改的屬性重新編制索引。 我認為圖db Neo4J在建立索引時遵循類似的方法,但是我不確定。 誰能評論對性能,查詢等可能造成的影響?

從根本上說,這取決於您要在搜索結果中作為文檔返回的內容。

但是索引很便宜。 更改后的POJO是否真的具有這么多的屬性,以至於全部重新編制索引是一個主要問題?

如果在每個搜索請求中僅搜索一個字段,則將一個POJO拆分為多個文檔將加快重新索引的速度。 但是,如果搜索多個字段,將導致另一個問題,POJO可能會出現多次。 實際上,我同意EJP,在小型數據集中構建索引非常快。

暫無
暫無

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

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