gpt4 book ai didi

lucene - 如何检查 Lucene IndexWriter 实例是否有效/打开?

转载 作者:行者123 更新时间:2023-12-04 20:22:38 25 4
gpt4 key购买 nike

对不起,这个简单的问题,但似乎没有任何明显的方法。根据文档,建议保留 IndexWriter 的单个实例。在内存中可以一次又一次地用于更新,而不是为每次更改打开和关闭一个(成本更高)。

但是,文档还指出 IndexWriter如果发生异常(例如 OutOfMemoryException ),则应关闭。

因此,我需要一些方法来检查我的 IndexWriter 实例是否是否有效,假设它可以被其他操作关闭。

我意识到如果我在关闭时尝试使用它,我会得到一个异常,但不是失败,我想检查是否需要创建一个新的 IndexWriter在我需要它之前,所以不会发生故障。

在我看来很简单 IsOpen属性/方法将是一个明显的补充。

感想:

我想,如果我能确保我的类(class)是唯一能够关闭 IndexWriter 的东西,我可以简单地将它设置为 null当它关闭时,只需检查以确保它不是 null每当我去使用它时,但这不会处理 IndexWriter 的情况。自行关闭(如果现在或将来可能出现这种情况)。

另一个想法是,我可以将尝试在 try/catch 块中使用它并使用异常来指示它需要重新打开,但这似乎不是很有效/优雅。我会用什么方法来测试 IndexWriter 的有效性?

最佳答案

如果您遇到内存不足异常(或任何类型的异常,真的),这可能是一个大问题。您尝试写入的更改可能不会写入,您的索引甚至可能已损坏,具体取决于异常发生的时间/方式。

所以一个 IndexWriter处于错误状态是一种特殊情况,我会说这当然需要使用异常,即 try/catch。

(我不认为您的问题是“重新打开编写器”。根据异常情况,您可能需要重新索引内容,可能需要从头开始。当然,您不应该期望编写器中经常出现异常。)

关于lucene - 如何检查 Lucene IndexWriter 实例是否有效/打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4728690/

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