2012-04-10 105 views
0

我們有一個使用SOLR進行搜索的PHP Web應用程序。 APP正在使用CURL連接到SOLR服務器,並且使用成千上萬的預定義關鍵字循環運行。這將在特定時間爲SOLR創建數千個不同的搜索問題。SOLR問題 - 搜索查詢太多

我的問題是,當一個用戶登錄到應用程序時,一切都按預期工作。當有多個用戶試圖運行應用程序時,我們從服務器獲取此響應。

無法連接到的xxx.xxx.xxx.xxx:不能分配請求 addressFailed連接到的xxx.xxx.xxx.xxx:不能分配請求 addressFailed

我們的假設是, SOLR服務器無法在給定的時間處理這麼多的搜索查詢。如果是的話,有什麼解決方案來克服這一點? SOLR中是否有像保持活動一樣的設置?

任何幫助將不勝感激。

感謝,

阿倫小號

+0

每個用戶請求都會向SOLR生成數千個請求?爲了提供這樣的服務,您需要相當高的可擴展性 – 2012-04-10 12:53:12

+1

還請解釋爲什麼您需要爲單個用戶的請求連續運行一千個查詢?您可能不得不重新設計您的應用程序。同時,讓你的程序在緩解隨機故障(如果這是你所擁有的)的請求之間睡75毫秒(愚蠢的經驗法則!)。 – aitchnyu 2012-04-10 13:02:28

+0

與上述同意。如果關鍵字是預定義的並且有很多這樣的關鍵字,那麼將循環作爲計劃任務(例如,每天一次)並將結果保存在某個地方是個不錯的主意。 – 2012-04-10 13:57:04

回答

0

怎麼樣的中用OR關鍵字的一個子集,只是做一個查詢?
然後,如果沒有找到,請嘗試使用關鍵字的下一個子集?

對於這種特殊情況,我認爲你需要提高你的應用程序性能,而不是SOLR的,即使你需要做一些欺騙。

SOLR中是否有最大連接限制?

這很大程度上取決於您使用的硬件和操作系統,以及您可能使用的servlet容器。

如果你需要SOLR更多的性能,你可能需要調整你的模式(你可以在這裏發佈更多的幫助),垂直銷售(ram目錄或SSD)或考慮主從設置。