Solr,Lucene 優化有哪些相關經驗可分享?

時間 2021-05-30 23:28:15

1樓:陳運文

solr/lucene優化主要是索引和查詢兩面的優化。

在優化效能方面,在工作中主要有優化索引的占用空間和優化查詢的消耗時間。在lucene的底層,優化這兩個方面一直是lucene版本不斷更新的目標。例如對於字典的優化,從先前的樹形結構優化到現在FST結構,儲存空間是下降了很多,但是相應的查詢時間也有所增加。

在索引結構中每個字段是否store(正向結構)也是節約空間的乙個方向,但是沒有正向結構就不能進行高亮或者展示等一些操作。

在多分片,資料量比較大的情況下可以將每個shard的段檔案進行一次optimize操作,這個操作進行之後可以使查詢效能提高很多,但是在此期間索引速度就會下降很多,而且在段合併過程中,對於記憶體的消耗也是比較大,相應的硬體條件也要進行考慮。

solr支援ExtendQuery,可以對query進行拆分對於cpu密集型的任務可以將它拆分出來,做最後的過濾條件。

還有快取的使用,現在solr的快取支援的底層結構有linkedhashmap(偏向於寫操作)和ConcurrentHashMap(偏向於讀操作)兩種快取,要考慮你的快取的偏向性,去設定快取的底層結構(這兩種是可選擇的)。

2樓:張旭

補充一點, Lucene 4.0 加入了 Doc Values 替換原本的Field cache. 可能開始的時候並沒有原來的Field cache 快,但是是更加scalable 的辦法。

資料規模一大,關鍵問題是GC

3樓:楊波

你的所有欄位都需要highlight麼, 如果不需要highlight則可以將term vector關掉。 這裡面的道理是什麼?能講講麼?

請問有哪些最優化演算法可以做全域性優化?

我是學水文的,在進行水文模型引數率定時,往往要考慮引數的最優性問題。其實就是手裡有了實測值,希望模型最終模擬的結果盡可能地逼近實測值。這也是各類水文模型引數優選的目標函式。通常用的較多的是遺傳演算法 粒子群演算法 模擬退火演算法 蟻群演算法 魚群演算法 狼群演算法 免疫演算法 蜘蛛群居演算法以及SC...

有哪些辦法可以優化 Visual Studio Code 的啟動速度?

杏林一白 每次看完檔案 vscode別關然後開啟下乙個檔案就是秒開和n 速度差不多 如果vscode關了再重新開檔案就是需要卡幾秒鐘 把Vscode安裝目錄放到SSD上面 同樣,進入C Users username目錄,對.vscode啟用ntfs壓縮。減少安裝無謂外掛程式,一直不用的外掛程式dis...

有哪些可以優化Windows系統的軟體值得推薦?

親測有效,親自演示 LiveLetLive 基於微軟工程師是世界上最厲害的工程師這一假設 因為微軟是最厲害的軟體公司 可以說,所有聲稱能優化 Windows 的軟體都是噱頭。除了一款。那就是微軟引進的第三方軟體 WSL,它相當於是微軟把 Linux 嵌入到了 Windows 裡。學會使用 WSL,可...