2013-12-11 42 views
3

我目前在Solr中有超過2500萬個文檔,並且音量將逐漸增加。我需要在如此大尺寸的Solr索引中搜索記錄。當起始值較低時,查詢響應時間較低,例如0。但是隨着開始增加,例如100000,在Solr中搜索也花費時間。即使在Solr中的大數據集上使用高起始數字,我如何能更快地進行搜索?行數保持不變只有開始不斷增加。我不希望響應時間增加,因爲開始持續增加,而是希望start=100000返回的結果應該與start=0相同,假設是rows=1000,因爲這是性能問題。任何幫助,將不勝感激。Solr搜索查詢時間隨着開始持續增加而增加

+0

如果想在這一段時間,引用你能給些細節,爲什麼你想深入到結果?我認識的大多數人不讀取結果的第1000條,他們開始通過更好的搜索。 – cheffe

回答

2

您面臨的問題叫Deep Paging。 Solr跟蹤器上的solr.plan incomplete issue上有a good article about it

的文章中提到的解決方案將要求您進行排序的結果,如果這對你來說是不可行的解決方案將無法工作。這個想法是通過一個穩定的屬性進行排序,在price的文章中,然後使用價格範圍進行過濾,如fq=price:[9000+TO+10000]

如果你把那個fq用合適的start - 像start=100030 - 你會得到更好的性能,Solr的不會收不匹配fq的文件。

但你將需要至少一個查詢提前獲取合適的元數據,比如多少文檔已被發現的。

+0

感謝您的回覆。我懷疑在應用程序中使用過濾器查詢,因爲我只做文本索引,而查詢更多是'AND'或'OR'而不是範圍查詢。 Solr的跟蹤器解決方案是我實際上正在尋找的東西,但它不完整,沒有看到與此相關的任何良好工作。 – user850234

+0

無論你的查詢是什麼樣子。問題是你是否需要按相關性排序或不使用fq技術。 – cheffe

+0

我不需要使用fq-technique。不過,我接受你的答案,因爲這可能對其他人有幫助。 – user850234

2

使用Solr 4.7中的新功能的發佈已經出臺Cursors。這完全是爲了解決深度尋呼問題。如果你仍然有問題,你可以升級到Solr 4.7,這對你來說是最好的選擇。

一些關於深分頁使用Solr

相關問題