2010-07-10 70 views
1

我有一個新聞網站有150,000條新聞報道。每隔5-15分鐘就會向數據庫添加大約250篇新文章。據我所知,Solr已經爲數百萬條記錄進行了優化,我的150K不會成爲它的問題。但我擔心頻繁更新會成爲一個問題,因爲每次更新都會導致緩存失效。在我的開發服務器中,一個頁面的冷加載需要5-7秒才能加載(因爲每個頁面都運行幾個MLT查詢)。索爾不斷更新索引

它會幫助,如果我把我的索引分成兩個 - 歸檔索引和最新索引。檔案索引將每天更新一次。

任何人都可以提出任何方法來優化我的安裝不斷更新的索引?

謝謝

+0

你能指定「有幾個MLT查詢」有多少個?您每頁運行多少個Solr查詢? – 2010-07-10 21:38:00

+0

你在使用什麼客戶端平臺? – 2010-07-10 22:05:57

+0

我的本地開發服務器是Mac。生產服務器是CentOS。 部分索引頁包含20篇文章,每篇文章都有MLT查詢。而文章頁面包含兩個MLT查詢。 – 2010-07-11 06:38:31

回答

1

我的答案是:測試它!如果你不知道它是如何執行的,不要嘗試優化。就像你所說的那樣,150K不是很多,建立一個適合你測試的大小索引應該很快。之後,在索引更多文檔以查看其行爲方式時,從不同的併發線程(模擬用戶)運行幾個MLT查詢。

您應該注意的一個設置是自動提交。由於您經常編制索引,因此您無法在每個文檔中進行提交(您將調低Solr)。您將爲此設置選擇的值將允許您調整系統的延遲時間(在結果中返回新文檔需要多少次),同時保持系統響應。

+0

我喜歡調整COMMIT間隔的想法。您應該可以隨時添加文檔,並定期進行COMMIT。然後,您只需每隔一段時間支付一次重新緩存。 – 2010-08-10 17:35:44

0

考慮在主查詢中使用mlt = true,而不是發佈每個結果MoreLikeThis查詢。您將節省往返時間,因此速度會更快。