2013-03-27 56 views
1

我有一小組查詢和實體,即使性能很差,我只想知道我可以做些什麼技巧和配置來提高性能?Solr全導入性能

注意我正在使用Solr 4.1。

+0

你有多少份文件?你正在運行什麼類型的查詢? – aitchnyu 2013-03-27 07:52:46

+0

Mongo查詢,約550K。 – Hilmi 2013-03-27 07:59:50

回答

5

您應該儘量減少導入過程中的提交次數。即使將文檔添加到Solr當你沒有定期提交,Solr的會做一個自動提交基於solrconfig.xml中自動提交設置:

<autoCommit> 
    <maxDocs>10000</maxDocs> 
    <maxTime>15000</maxTime> 
    <openSearcher>false</openSearcher> 
</autoCommit> 

同時增加maxDocsmaxTime,看看你得到更好的速度。 (maxTime以毫秒爲單位,因此默認設置僅爲15秒,對於批量導入而言非常低)。

您甚至可以嘗試在批量導入期間禁用自動提交,並在所有文檔都發出後發出一個提交命令添加。如果這不會導致Solr發生內存不足的異常,那麼這是您可以獲得的最佳速度。

如果您在進行RDBMS導入,那麼我會建議使用JOIN捕獲儘可能多的字段,並儘量減少子實體的數量,因爲每個子實體都會打開一個到DB的單獨連接。既然你是從mongo進口的,這不適用於你。您可以嘗試創建一個新的mongo集合,其中包含Solr所需的所有數據,在數據導入器中保留一個實體並查看它是否可以提高導入速度。

+0

它有助於增加線程數量嗎? SOLR堆的大小? 我的版本是6.3 – Yury 2017-01-07 09:15:19