gpt4 book ai didi

java - 获取 IndexWriter 上待处理更改的数量

转载 作者:行者123 更新时间:2023-12-01 19:18:16 24 4
gpt4 key购买 nike

我们有基于 Lucene 的本土搜索服务。我前段时间遇到的一个特殊问题是获取 IndexWriter 上待处理更改的数量。如果挂起的更改计数器为零,则无需提交索引,重新打开 IndexReaderIndexSearcher 等。此外,我们还有一些链接到 IndexReader.commit() 调用的应用程序级逻辑,如果提交点没有实际更改,最好不要调用它。

我可以访问调用方法 IndexReader.updateDocument()IndexReader.remove() 的所有位置,因此我只需编写自己的挂起计数器即可变化。但我很感兴趣 Lucene API 本身是否已经存在一个? API 检查没有为我提供有关该主题的足够信息。

最佳答案

您可以使用IndexWriter.numRAMDocs来获取添加的文档数量,但我认为没有公共(public)API来获取当前缓冲删除的数量。

IndexWriter.ramSizeInBytes 在这里也可能有用。它告诉您当前正在使用多少 RAM,因此当您添加或删除文档时,该 RAM 会增加(但在发生刷新时会减少)。

请注意,IndexReader.isCurrent 仅当您从 IndexWriter 提交更改时才可用,即,如果您有挂起的更改但尚未提交(或关闭)写入器那么 IndexReader.isCurrent 仍将返回 true。

关于java - 获取 IndexWriter 上待处理更改的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5644877/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com