Indexing 如何:提高Lucene.net索引速度

Indexing 如何:提高Lucene.net索引速度,indexing,lucene.net,Indexing,Lucene.net,我正在尝试创建一个大约有200万条记录的lucene。索引时间约为9小时。 您能建议如何提高性能吗?提高Lucene索引性能的最简单方法是调整IndexWriter的mergeFactor实例变量的值。该值告诉Lucene在将文档写入磁盘之前要在内存中存储多少文档,以及将多个段合并在一起的频率 我写了一篇关于如何并行化Lucene索引的糟糕文章。它确实写得很糟糕,但您会发现它(您可能想看一些示例代码) 不管怎样,主要的想法是将数据分块,然后在单独的线程上处理这些数据。完成每个部分后,将它们合并到

我正在尝试创建一个大约有200万条记录的lucene。索引时间约为9小时。
您能建议如何提高性能吗?

提高Lucene索引性能的最简单方法是调整IndexWriter的mergeFactor实例变量的值。该值告诉Lucene在将文档写入磁盘之前要在内存中存储多少文档,以及将多个段合并在一起的频率


我写了一篇关于如何并行化Lucene索引的糟糕文章。它确实写得很糟糕,但您会发现它(您可能想看一些示例代码)

不管怎样,主要的想法是将数据分块,然后在单独的线程上处理这些数据。完成每个部分后,将它们合并到一个索引中

通过上述方法,我能够在大约2小时内索引400多万条记录


希望这能给你一个方向的想法。

除了编写方面(合并因子)和计算方面(并行化),这有时是由于最简单的原因:输入速度慢。许多人从数据数据库中建立Lucene索引。有时,您会发现针对该数据的特定查询过于复杂和缓慢,无法快速返回所有(200万?)记录。尝试查询并写入磁盘,如果仍在5-9小时内,您就找到了一个优化的地方(SQL)。

当我需要加快速度时,以下文章确实帮助了我:


我发现文档构建是我们的主要瓶颈。在优化了数据访问并实施了一些其他建议之后,我能够显著提高索引性能。

您好,谢谢您的回复。我正在寻找类似于你所做的事情。你能在你的博客上发布一些代码片段吗。谢谢,戈库