2016-04-15 137 views
0

我正在開發使用ElasticSearch和SQL數據庫的應用程序。 那麼,什麼是最好的方式來保存用戶的搜索查詢和顯示統計信息,如最受歡迎的請求?簡單的方法是保存在SQL數據庫和計數。但是也許在ElasticSearch中構建了一些技術?在ElasticSearch中保存用戶搜索查詢的最佳方式?

回答

3

您可以通過在ES羣集中​​創建第二個索引來完成此操作。當用戶通過應用程序提交搜索時,執行兩個步驟。

  1. 將搜索作爲查詢提交給Elasticsearch以進行正常搜索行爲。
  2. 使用用戶提供的搜索條件向集羣提交索引請求。

對於已提交的所有搜索字詞的第二個索引,您可以做許多簡潔的事情。對於你的情況,你可以像在SQL中那樣擁有一個'count'字段,隨着更多人搜索該字詞,你可以增加字段。另一個很好的用例是Google風格推薦條款。您的用戶界面可以在每次按鍵時使用輸入的文本提交搜索請求,並使用之前搜索的字詞進行填充。您甚至可以通過添加用戶字段並過濾掉不是來自特定用戶的結果來個性化這一點。

需要記住的是ElasticSearch可以用作主數據存儲和輔助數據存儲。我總是建議你只保留你願意丟失的數據(比如搜索歷史記錄)作爲主數據。將您的系統關鍵數據保存在更傳統的數據存儲(如SQL)中,這樣一來,如果出現任何問題,備份和恢復都很容易!

相關問題