Solr计数不正确

问题描述:

背景:我们的Zookeeper设备中有3个设备发生故障,导致我的SOLR系统崩溃。我添加了新的Zookeeper机器并使用新的Zookeeper机器更新了每个SOLR机器配置。Solr计数不正确

在此之后,我开始SOLR并使用管理页面查询*:*,每当我查询池时返回一个不同的数字。

因此,我清除了SOLR云中的所有记录,并运行了一个batch-job以将所有数据从Oracle重新填充到SOLR。 (一切看起来不错)。

问题:我有一个日常batchjob,它更新SOLRDELTA(Inserts + Updates)Oracle

由于这个实例。 SOLR池中的编号与DELTA(insert + update)不匹配。例如:即使每天更新或插入1000条记录,SOLR计数也会超过10000.

*:*返回的数字不匹配。我们已经尝试多次清除记录。当我们在清除后第一次插入记录时,事情看起来不错,但只要更新开始发生,数字就不匹配。

没有重复记录。如果我查询特定的记录,我们会得到正确的记录,但是方面的数字也是错误的。

索引文件是否损坏?

+0

1.群集有多少个Solr实例? 2.多少片碎片? 3.你如何做索引?通过SolrJ或其他任何东西? –

+0

群集中的25个实例,3个Shards。我有一个Spring批处理作业,它读取记录并在'SOLR' – user1324887

+0

did zk中跟踪记录所有实例的正确状态? –

尝试优化您的索引。我也面临同样的问题,并优化索引修复它。

 curl http://hostname:8980/solr/<core>/update?optimize=true 

优化上的一些更多的信息:

http://wiki.apache.org/solr/SolrPerformanceFactors#Optimization_Considerations

PS:请注意,优化是昂贵的。你不应该每天运行一次以上。

+0

我试过优化索引。到目前为止,这并没有改变。 – user1324887

+0

只是跟在这一次。发现我们的分片中有不同'_version_'的重复文档。我在2个分片的2个不同节点上用'distrib = false'运行了solr查询,他们都返回了2个具有不同'_version_'的文档。有什么见解? – user1324887