合并索引Lucene .NET与直接编写索引

时间:2015-09-28 09:43:18

标签: .net lucene.net

我一直在尝试一些方法来对Lucene索引进行异步初始化。

其中一个女巫将我们的小批量数据索引到单独的索引中,然后将它们合并为更大的索引。

问题在于,当任务完全完成时,我们的索引似乎没有相同的结果。

现在许多特定查询会产生相同数量的结果,例如 contentType:notification

所有文档选择器也会产生相同的结果。 (

但如果我进行通配符搜索,例如' C *'从碎片索引构建的索引然后合并产生0个结果但是一个大写的索引可以产生几十万个结果(这是公平的,因为c *是一个相当广泛的搜索)...

是否有任何事情需要在合并的索引上完成,或者它们的处理有什么不同?...我试图对它们运行Optimize,但没有运气。

1 个答案:

答案 0 :(得分:0)

在不知道任何细节的情况下...我会说你在这个坚果上使用了太大的锤子:)

我使用批量创建的索引(100百万的文档)和增量索引(每天100K +更新数百万个文档)。这两种方法都只在单个索引目录上使用了一个IndexWriter。

诀窍是适当地调整IW MergePolicy和/或通过仅偶尔更新IndexReader来调整搜索器“延迟”。这基本上“缓存”一段时间内的IR,这会提高搜索速度,但代价是有点过时。根据期望调整期间。

如果仍然存在问题,我可以扩展这种方法