1

我目前正在索引 Wikipedia 转储(实际上是 2012 年的转储,但格式相同),并想了解性能成本(大小和处理时间)。

我正在使用 Lucene for Java v4.x 并将所有转储字段存储在索引中。我在一台配备 i5 处理器和 8 GB RAM 的机器上工作。我刚刚完成了 5000 篇文章的索引,这些文章创建了一个大小为 5GB 的索引,耗时约 10 分钟。

这意味着对于 350 万篇文章,这将是一个 3.5 TB 的索引,如果索引时间是线性的(事实并非如此),这将花费我大约 5 天的时间。我想知道这是否正常,因为原始维基百科转储文件只有 35 GB...

4

1 回答 1

1

我们曾经在这里遇到过同样的问题,我们对此进行了很多研究,所以让我与您分享一些我们在这方面面临的事实。

第一:关于索引过程的速度,您可以使用多线程解决方案,或者将您的索引分成一个类别,您可以设计一个解决方案来同时索引您的文章。

例子

1-我们将数据分为类别和子类别,这使我们能够同时为每个子类别打开一个索引编写器,这使索引速度翻了一番我们的子类别的 x(n)。

2-我们设计了一个多线程解决方案来索引我们的数据,我们创建了一个固定大小的线程池,这个池中的所有线程使用同一个写入器对同一类别的数据执行索引过程,然后一次提交索引数据.

第二:关于索引文件的大​​小,你无能为力,因为你无法控制它们。lucene 有自己的方式来处理文件,所以在这种情况下,我们决定使用 lucene 新版本 4.x,它的大小增强减少了大约 60%。

于 2014-06-11T07:01:08.953 回答