【发布时间】:2011-12-06 07:16:18
【问题描述】:
我们需要在 Solr 中创建索引,而且耗时太长。我们有大约 800,000 条记录,按照索引的速度,似乎需要 15 到 20 天。我们目前正在寻找一次性索引。有什么建议吗?
【问题讨论】:
-
如果您使用的是 DIH,请发布您的数据导入配置。
我们需要在 Solr 中创建索引,而且耗时太长。我们有大约 800,000 条记录,按照索引的速度,似乎需要 15 到 20 天。我们目前正在寻找一次性索引。有什么建议吗?
【问题讨论】:
为什么索引需要这么多时间?任何需要时间的预处理步骤?因为这似乎需要很长时间。
这些是数据库记录还是丰富的文档?
你如何索引数据?您是否经常进行提交或优化?
系统内存、cpu、空间表现如何?
可能想重新访问solrconfig.xml中的一些设置
如果以上所有情况看起来都不错,您可以尝试一个选项 -
创建单独的核心并运行并行作业来索引数据。索引完成后,您可以合并索引或使用distributed search。
【讨论】:
我编写了一个系统来索引大约 300,000 条记录,经过一些性能测试,我将 SOLR 配置为每 5 分钟提交一次。查看 solrconfig.xml。有几个与提交更改相关的指令,但您不应该在每次记录更新后提交。每 100-200 条记录后提交或每 5 分钟提交一次。这在重新索引所有数据时尤其重要。
我选择了 5 分钟,因为它对于持续同步也是一个合理的设置,因为我们每分钟都会轮询数据库以获取更改。我们告诉用户,更改流向 SOLR 需要 5 分钟左右,到目前为止,每个人都对此感到满意。
【讨论】:
根据我的经验,索引大量数据可能需要一段时间。我正在处理的索引有 2m 个项目(大小:10G)。使用 DB 完成索引大约需要 40 小时。
有一些因素可能会减慢您的速度:
【讨论】: