3

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

4

2 回答 2

3

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

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

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

于 2013-03-03T18:51:07.890 回答
0

看看这个解决方案,我有同样的要求,我使用了这个链接中的解决方案,它对我有用。使用计时器,它会经常创建索引,因此不会出现任何重叠/跳过问题。试试看。

在代码中使 Lucene.Net 线程安全

谢谢。

于 2017-04-22T05:29:59.430 回答