Solr 軟提交的設置方式

爲什麼要使用軟提交

以前程序向solr中提交索引時,每次addBean後都執行1次commit操作。

client.addBean(obj);
client.commit();

這樣極其耗費資源平均提交時長爲600毫秒,所以改用其他提交方式

在solrconfig.xml中加入如下配置

<autoCommit>
    <maxTime>20000</maxTime>
    <openSearcher>false</openSearcher>
</autoCommit>

<autoSoftCommit>
    <maxTime>5000</maxTime>
</autoSoftCommit>

配置了autoCommit,爲什麼還要配置autoSoftCommit???

其實單獨配置autoCommit是可以的,但是其參數openSearcher=false的話,程序提交的索引會寫入硬盤(好處是數據不會丟失),但是新加入的數據不會被搜索到,只有solr被重啓或openSearcher=true時纔可以被搜索到。

那爲什麼要把autoCommit的openSearcher設置爲false呢???

在autoCommit裏設置了文檔每隔20000ms就去做一次硬提交,openSearcher屬性設置是否每一次硬提交都開啓一個新的Searcher,由於開啓Searcher也是昂貴的操作,推薦不要開啓,可以通過配合下面的autoSoftCommit來實現快速檢索到提交的問題。

autoSoftCommit裏設置了5000ms做一個軟提交,配置了autoSoftCommit的話新加入的數據,就可以被檢索到了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章