Solr索引占用时间过长

时间:2011-10-12 16:34:13

标签: solr indexing

我们需要在Solr中创建索引并且它需要花费太长时间。我们有大约800k的记录,它似乎需要花费15至20天的时间来进行索引。我们现在正在寻找一次性指数。有什么建议吗?

3 个答案:

答案 0 :(得分:3)

我写了一个系统来索引大约300,000条记录,经过一些性能测试,我将SOLR配置为每5分钟提交一次。查看solrconfig.xml。有几个与提交更改相关的指令,但您不应在每次更新记录后提交。每100-200条记录后提交或每5分钟提交一次。在重新索引所有数据时,这一点尤其重要。

我选择了5分钟,因为它也是进行同步的合理设置,因为我们每分钟轮询我们的数据库进行更改。我们告诉用户,更改流入SOLR需要5分钟左右,到目前为止,每个人都对此感到满意。

答案 1 :(得分:3)

根据我的经验,索引大块数据可能需要一段时间。我正在研究的索引有2米项目(大小:10G)。使用DB,完整索引大约需要40个小时。

有些因素可能会减慢您的速度:

  • 存储器。有人认为盒子上有记忆,另一种是允许Solr使用它。尽可能多地为Solr提供索引时间(您可以在以后轻松更改)
  • 垃圾收集器。默认情况下,我们遇到了很多问题(20-30小时索引被中断后我们必须从头开始)
  • 从DB
  • 生成Solr缓存结果
  • 检查所有查询,它们的价格是多少
  • 小批量索引。如果我将索引300k项目,则需要更长的时间,而不是将它们分为3批100k
  • 拥有大量全文存储字段无济于事(如果您不需要存储某些内容,请不要这样做)

答案 2 :(得分:0)

索引花费这么多时间的原因是什么?任何需要时间的预处理步骤?因为这似乎通常需要很长时间 这些数据库记录还是丰富的文件? 你如何索引数据?你经常提交或优化吗? 系统内存,CPU,空间表现如何? 可能想要重新审视solrconfig.xml

中的某些设置

如果以上所有内容都很好,您可以尝试选择 -
创建单独的核心并运行并行作业以索引数据。索引完成后,您可以合并索引或使用distributed search