Solr索引花费的时间太长了
我们需要在Solr中创建索引,这花费的时间太长了。我们有大约800k条记录,按索引速度,似乎需要15到20天。我们现在正在寻找一个一次性索引。有什么建议吗?为什么索引要花这么多时间?预处理步骤需要时间吗?因为这似乎花费了很长时间。Solr索引花费的时间太长了,solr,indexing,Solr,Indexing,我们需要在Solr中创建索引,这花费的时间太长了。我们有大约800k条记录,按索引速度,似乎需要15到20天。我们现在正在寻找一个一次性索引。有什么建议吗?为什么索引要花这么多时间?预处理步骤需要时间吗?因为这似乎花费了很长时间。 这些是数据库记录还是丰富的文档? 您如何为数据编制索引?您正在运行频繁提交或优化吗? 系统内存、cpu、空间表现如何? 可能需要重新访问中的某些设置 如果上述各项都很好,您可以尝试一个选项- 创建单独的内核并运行并行作业来索引数据。索引完成后,您可以合并索引或使用。我
这些是数据库记录还是丰富的文档?
您如何为数据编制索引?您正在运行频繁提交或优化吗?
系统内存、cpu、空间表现如何?
可能需要重新访问中的某些设置 如果上述各项都很好,您可以尝试一个选项-
创建单独的内核并运行并行作业来索引数据。索引完成后,您可以合并索引或使用。我编写了一个系统来索引大约300000条记录,在一些性能测试之后,我将SOLR配置为每5分钟提交一次。请看solrconfig.xml。有几个指令与提交更改相关,但您不应该在每次记录更新后提交。每100-200条记录后提交一次,或每5分钟提交一次。这在所有数据的重新索引期间尤为重要
我选择了5分钟,因为这也是一个合理的持续同步设置,因为我们每分钟都会轮询数据库的更改。我们告诉用户,更改需要5分钟左右才能传递到SOLR,到目前为止,每个人都对此感到满意。根据我的经验,为大块数据编制索引可能需要一段时间。我正在处理的索引有2m个项目(大小:10G)。使用DB进行完整索引大约需要40个小时 有一些因素可能会让你慢下来:
- 记忆。一种想法是在盒子上有内存,另一种想法是允许Solr使用它。为Solr提供尽可能多的索引时间(以后可以轻松更改)
- 垃圾收集器。默认情况下,我们遇到了很多问题(在20-30小时索引中断后,我们必须从头开始)
- 从数据库生成Solr缓存结果
- 检查所有查询,它们有多贵
- 小批量索引。如果我要索引30万个项目,这将比索引3批10万个项目需要更长的时间
- 有很多大的全文存储字段是没有帮助的(如果你不需要存储一些东西,不要这样做)