为什么索引更新在Solr 4.10.x中花费了这么多时间?

Sha*_*fiq 1 lucene indexing performance solr

我使用的是solr 4.10.3.我必须更新大约100,000个索引.查询就像每个文档

curl 'localhost:8900/solr/update?commit=true' -H 'Content-type:application/json' -d '[{"id":"org.wikipedia.ur:http/wiki/%D9%85%DB%8C%D9%84","group":{"set":"wiki"}}]'
Run Code Online (Sandbox Code Playgroud)

在开始更新此索引后,经过12个小时后,仅更新了48000个文档.

问题出在哪儿.谁能指导我?

You*_*bit 6

您正在使用每个curl请求的硬提交.这会强制solr在每次提交时将段(用于存储索引的lucene数据结构)推送到磁盘.Solr总是将数据写入新的段,看起来它迫使它创建100K段.

Solr的使用mergePolicy如TieredMergePolicymergeFactor10,其合并每次solr的默认参数具有10米几乎相等的大小的段.此合并进程使用ConcurrentMergeScheduler实现在后台运行.

此合并过程是CPU密集型的.在这里你可以用softCommit而不是hardCommit.这可能对你有帮助.