gpt4 book ai didi

asp.net - Lucene.NET --> 拒绝访问段

转载 作者:行者123 更新时间:2023-12-04 07:11:29 25 4
gpt4 key购买 nike

我对 Lucene.NET 有疑问。在索引期间,我收到错误“访问路径段被拒绝”。或者有时“访问可删除路径被拒绝”。我最终将索引目录的“所有人”完全安全权限授予,但问题仍然存在。

然后我发现在索引运行期间,lucene 将段文件重命名为“segments.new”,然后发生了这个错误。我想某些进程在重命名后仍会尝试从旧段文件中读取?我不知道为什么会发生这种情况,或者如何解决这个问题。奇怪的是,我的合作开发人员可以在他们的计算机上毫无问题地运行索引。

错误发生在 Lucene.Net.Index.IndexModifier.AddDocument(Document) 中。

任何想法将不胜感激。

最佳答案

我怀疑您的 IndexModifier 与 Searcher 争用。

以下是我在 bug tracking 中使用 Lucene.Net 的方式应用程序,BugTracker.NET ,这似乎工作正常。

我在应用程序启动时创建索引。

我创建了一个搜索器并保留它,这样索引就不会随着每次搜索而重新加载。所有线程共享同一个搜索器。当搜索者搜索时,它会抢到一个锁,搜索,然后释放锁,以便另一个线程可以搜索。在我的应用程序中强制搜索到单个文件是可行的,因为 Lucene.NET 很快并且错误跟踪系统不是那么忙。

与此同时,我有一个 IndexWriter,它在数据发生变化时更新索引。它只是稍微改变了一点,所以它也能快速完成任务。当它需要运行时,它会获取同一个锁,销毁搜索器,更新索引,然后重新创建搜索器。新的搜索器会一直存在直到索引的下一次更新。搜索者始终使用最新的索引。

您可以获得 BugTracker.NET 源代码并查看文件 my_lucene.cs 和 search_text.aspx。都在这两个文件里,没有那么多代码。

关于asp.net - Lucene.NET --> 拒绝访问段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/271661/

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