2017-03-03 100 views
0

背景:我們的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中跟蹤記錄所有實例的正確狀態? –

回答

0

嘗試優化您的索引。我也面臨同樣的問題,並優化索引修復它。

 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