gpt4 book ai didi

c# - 在 Web 应用程序中使用 IndexSearcher/IndexWriter 的 Lucene.net

转载 作者:行者123 更新时间:2023-11-30 15:13:13 25 4
gpt4 key购买 nike

我目前正在 Web 应用程序中运行 Lucene.net,想知道性能方面的最佳方法。

我目前已对其进行设置,以便在优化索引的同时,所有索引写入都在计划的过程中一起处理。

但是对于搜索 - 我目前在每次搜索时打开和关闭搜索器,我知道这并不理想。

您认为在这种情况下最好的方法是什么?

一旦处理完更新/优化,我将需要关闭并重新打开索引搜索器,因此计划进程(这是一个 Windows 控制台应用程序)需要将其完成通知 Web 应用程序。

最佳答案

我刚刚将 Lucene.NET 集成到 BugTracker.NET 中。我不确定我所做的是否是最好的,但它似乎运作良好。

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

我创建了一个搜索器并保留它,这样索引就不会随着每次搜索而重新加载。所有线程共享同一个搜索器。当搜索者搜索时,它会捕获一把锁。

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

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

关于c# - 在 Web 应用程序中使用 IndexSearcher/IndexWriter 的 Lucene.net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/250776/

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