2014-11-25 15 views
1

建議我有了Apache Solr實現在後端和客戶端發出一個AJAX調用它通過Solr的獲取數據並給我結果的web服務的搜索服務。我正在尋找方法使其更快,那麼現在它是什麼。自動提示給出了建議,其中有總1,20,000(文本值即名稱)類別的方法來提高自動從客戶端

努力

  1. 我做了一個txt文件(在服務器上),並在搜索它取整類別在一個javascript變量中,我找到.indexOf()來查找substr位置(用戶輸入),對索引進行排序並提供自動建議。
  2. 我曾經想過做一個JSON文件和實施類似上面我所做過的東西。
  3. 也做了一個下拉通過自動鍵入時過濾內容,但我讀了它沒有太大推薦使用它很多。

製作的txt文件大小爲2MB,我也必須照顧2G和其他低帶寬的互聯網用戶。我的主要目標不是一次又一次在每個用戶按鍵上敲擊數據庫。

回答

0

爲了使響應速度快,我建議緩存索引內存。索引120,000個類別可能不是很大。你也可以試試Redis的autocomplete。這很容易實現,並且響應時間非常快。

+0

如果有人只工作客戶端,即他獲得通過Solr的數據(我假設是最快的,直到日期)怎樣才能在客戶端更多的優化可以做什麼? – MixedVeg 2014-11-25 09:33:59

+1

要優化客戶端,如果數據不是很大,可以緩存數據。您可以使用Web存儲在本地存儲在瀏覽器中的數據(http://en.wikipedia.org/wiki/Web_storage#Local_and_session_storage)。當瀏覽器第一次加載你的頁面時,它會緩慢,因爲它會緩存。但是,如果數據在服務器端更改,則必須刷新此緩存。 Solr可能不是最快的。我認爲如果你在服務器端緩存內存,它會最快。還取決於你如何構建指數。 – Subhash 2014-11-26 10:54:05