代码之家  ›  专栏  ›  技术社区  ›  Gokul

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

  •  8
  • Gokul  · 技术社区  · 17 年前

    你能建议如何提高绩效吗?

    4 回复  |  直到 17 年前
        1
  •  3
  •   Esteban Araya    17 年前

    我写了一篇关于如何并行化Lucene索引的糟糕文章。写得真是糟透了,但你会发现的 here (这里有一些您可能想查看的示例代码)。

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

    使用上述方法,我可以在大约2小时内索引400多万条记录。

        2
  •  1
  •   dlamblin    17 年前

    除了写端(合并因子)和计算方面(并行化)之外,这有时是由于最简单的原因:输入速度慢。许多人从数据数据库中建立Lucene索引。有时,您会发现针对这些数据的特定查询太复杂且速度太慢,无法实际返回所有的(200万?)快速记录。试着只查询并写入磁盘,如果它仍然在5-9小时的顺序中,您已经找到了一个地方进行优化(SQL)。

        3
  •  1
  •   Jesse MacVicar    17 年前

    当我需要加快速度时,下面的文章真的帮了我大忙:

    http://wiki.apache.org/lucene-java/ImproveIndexingSpeed

        4
  •  0
  •   Robert Harvey    17 年前

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

    http://search-lucene.blogspot.com/2008/08/indexing-speed-factors.html