嗨
如果在lucene索引上只發生插入操作(不刪除/更新),docID是不是正在改變?它也是可靠的
如果它是真的,我想用它作爲加載FieldCache增量降低加載所有文件的開銷,什麼是最好的解決方案?Lucene docID可靠性
0
A
回答
2
我不太清楚你打算同場緩存做什麼,但我的文檔ID的理解是,他們可以在插入過程中發生變化,這取決於掛起的刪除,合併政策等
即文檔ID不應過去犯下的邊界被用在重新開放的指數讀者
希望這有助於
0
文檔ID是段內靜態。 IndexReader.Open
(通常)打開一個DirectoryReader
,它結合了幾個SegmentReader
。您需要將「底部」閱讀器傳遞給FieldCache,以便羣體正常工作。
下面是FieldCache with frequently updating index的一個示例,它確保FieldCache只讀取新讀取的段,而不是最頂端的讀取器(在每次提交時都會考慮更改)。
var directory = FSDirectory.Open(new DirectoryInfo("index"));
var reader = IndexReader.Open(directory, readOnly: true);
var documentId = 1337;
// Grab all subreaders.
var subReaders = new List<IndexReader>();
ReaderUtil.GatherSubReaders(subReaders, reader);
// Loop through all subreaders. While subReaderId is higher than the
// maximum document id in the subreader, go to next.
var subReaderId = documentId;
var subReader = subReaders.First(sub => {
if (sub.MaxDoc() < subReaderId) {
subReaderId -= sub.MaxDoc();
return false;
}
return true;
});
var values = FieldCache_Fields.DEFAULT.GetInts(subReader, "newsdate");
var value = values[subReaderId];
相關問題
- 1. 如何從Lucene 3.0.3獲得可靠的docid?
- 2. 在計算命中/文檔時Lucene的可靠性如何?
- 3. SqlDependency可靠性?
- 4. Xeround可靠性
- 5. 流可靠性
- 6. Qpid可靠性
- 7. Optimizely可靠性
- 8. RAMDisk可靠性
- 9. Kryonet可靠性
- 10. Logback可靠性
- 11. 可靠性和WCF
- 12. FirebaseInstanceId.getInstance()。getToken()可靠性
- 13. PHP header();可靠性
- 14. AndroidBillingLibrary的可靠性
- 15. C2DM的可靠性
- 16. Lucene - 通過使用docValue獲取docId或文檔
- 17. 如何從搜索結果中獲取lucene的docId?
- 18. Lucene外部文檔Id偏離內部索引docId
- 19. Java - Lucene - 如何使用一系列docid過濾搜索
- 20. 如何在Lucene索引中添加文檔時獲取DocId?
- 21. S3高可用性+備份可靠性
- 22. $ _SERVER ['REQUEST_URI']的可靠性?
- 23. noexcept和可靠性保證
- 24. 可靠性在localhost通信
- 25. Content-Type的可靠性:image?
- 26. 快照的可靠性
- 27. Elasticsearch單節點可靠性
- 28. HttpCapabilitiesBase.Type物業 - 可靠性
- 29. NuGet飼料的可靠性
- 30. Android ID及其可靠性