c# - 定期更新 Lucene.net 索引

标签 c# asp.net-mvc lucene.net

我有一个 MVC 站点使用 Lucene.net 来实现其搜索功能。该网站有超过 10 万种产品。索引已经为站点构建。但是,该站点还有 2 个数据源,它们会定期(可能每 15 分钟)更新一次数据库。所以数据变化很大。我应该如何着手更新 Lucene 索引,还是根本不必更新?

最佳答案

使用进程调度程序(如 Quartz.Net)每隔一段时间(可能每 15 分钟)运行一次以获取数据库中未编入索引的项目。

使用字段作为 ID 进行比较(如序列号或日期时间)。您将从索引中获取最新添加的文档,并从数据库中获取最新添加的文档,并对介于两者之间的所有内容进行索引。您必须小心不要索引重复项(或者更糟的是,跳过未索引的文档)。

或者,将您的索引与 2 个数据源同步,并在文档存储在数据库中时对其进行索引,从而避免上述陷阱(重复/丢失)。我不确定这些提要如何更新您的数据库,但您可以拦截它们并相应地更新索引。

关于c# - 定期更新 Lucene.net 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15145315/

相关文章:

c# - 为什么代码覆盖率在 ReSharper 中不起作用?

c# - DateTime.TryParse 或 Datetime.TryParseExact?

c# - ASP.NET MVC Html.Editor 将模型传递给编辑器模板

c# - 将数据从 Model 导入 View 时出现无法解决的错误

C# 返回值 SHA256Managed 为 NULL

c# - 是否有将 Lucene.NET 集成到 ASP.NET MVC 应用程序中的任何建议?

c# - 更新到 Lucene.net 4.8.0-beta00001 后代码中断

c# - 在同一台机器上托管的 C# 和 Python 应用程序之间的通信

c# - 索引、IndexMany、IndexAsnyc、IndexManyAsync 与 NEST

c# - lucene.net IndexWriter 和 Azure WebJob