嘗試一些Lucene的3代碼轉換爲Lucene的4之間的區別,在Lucene的4是什麼AtomicReader和CompositeReader
我想用termEnums.docs(ir.getLiveDocs())到不僅回報文檔已被刪除一個特定的期限。然而,getLiveDocs()僅適用於AtomicReaders,雖然我只有一個索引,但它是基於文件的,並使用DirectoryReader(它是CompositeReader的子類)。
所以我想我可以使用SlowCompositeReaderWrapper,但名稱阻礙了我,但我不明白的是,幾乎沒有人使用基於文件系統的索引,幾乎沒有使用CompositeReaders的每個人?
然而,文檔似乎暗示我們應該使用AtomicReaders,但我不明白我如何可能做到這一點與基於文件的索引,也許如果基於文件的索引只有一個段,但不是段創建由Lucene提供,因爲它需要它們,而且通常不受最終用戶應用程序的嚴格控制。
我可以問你答案是否有用嗎?如果是的話,你可能想接受它。 – javanna 2013-05-27 21:41:41
javanna是的,它是有用的,雖然我希望多一些答覆,因爲林不知道寫我的代碼,這種改變似乎仍然使lucene不必要地複雜 – 2013-06-02 10:17:25
我明白你的觀點!我同意這非常棘手,另一方面,這是人們在使用lucene時需要注意的事情。這就是爲什麼彈性研究通常更適合的主要原因之一,即使是對於當地的小型指數;您實際上可以專注於您的數據,而無需瞭解有關lucene的所有詳細信息。 – javanna 2013-06-02 10:47:52