2013-07-03 70 views
0

現在,我有一個緊迫的任務來提高solr的「或」查詢性能。 我在兩臺服務器(每臺服務器:16個核心,32G RAM)中部署了9個帶solr-cloud的碎片。如何提高Solr「或」查詢性能

文件總數:6000萬,總指數大小:9G。

根據要求,我必須使用「OR」查詢來獲得結果。

查詢詞的平均數量約爲15

的響應時間「或」查詢是圍繞1-2seconds(以下簡稱「AND」查詢是差不多30毫秒,40毫秒)。

我們的目標:提升50%,即每個查詢最多500ms-1s。

該文件將飆升到80,000,000,但是,性能應保持在500ms-1s查詢。

任何意見或方法表示讚賞。提前致謝。

+0

查詢的樣子是怎樣的? – Jayendra

+0

q =名稱:(T1或T2或T3 ....) – huasanyelao

+0

最新名稱字段?字符串?文字?你可以用fq來緩存結果嗎? – Jayendra

回答

0

您可以嘗試使用lucene-c-boost。在C++中通過某些Apache Lucene查詢的優化實現(通過JNI)可以實現0到7.8倍的加速比。 見 https://github.com/mikemccand/lucene-c-boost

+0

儘管高度指定了一些查詢,但它確實可以將性能提高近2倍。 – huasanyelao

0

根據您是否可以在沒有評分的情況下生活,您可能只想運行多個查詢。 30-40ms * 15 => 450-600ms。

缺點是你沒有得到結果評分。