定期更新Lucene.net索引

时间:2013-02-28 20:45:55

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

我有一个MVC网站使用Lucene.net进行搜索。该网站拥有超过100k的产品。索引已经为站点构建。但是,该站点还有2个数据源,可以定期更新数据库(可能每15分钟一次)。所以数据正在发生很大变化。我应该如何更新Lucene索引,或者根本不需要更新?

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

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

Using Docker Multi-Stage Builds with Go

感谢。