2017-09-14 72 views
0

大家好我正在處理Django項目,並將後端數據庫作爲PostgreSQL服務器。我選擇了elastic search作爲我的項目的搜索引擎。將db內容索引到彈性搜索

我已經使用elastic search-dsl-py創建Django模型和elastic search doc類型之間的映射。並使用Django signals來捕獲updatedelete事件。

順便說一句,我沒有將所有從Django模型到彈性搜索的字段映射。

當用戶搜索他/她從彈性搜索服務器獲得一個項目列表到主頁時。當用戶點擊項目列表時。我應該在哪裏查詢在elastic_search serverPostgres server

如果我把每一個對象的所有細節,彈性服務器項目的詳細數據,這將將是一個痛苦對我來說,有一個Django模型中的嵌套關​​系。

如果我沒有在彈性搜索服務器中放置所有細節,我需要查詢數據庫,以獲取與彈性搜索查詢相比會變慢的項目的細節。

我應該走哪條路?

在彈性搜索服務器中索引所有屬性以及嵌套關係,並執行所有查詢操作以進行彈性搜索。

OR

指數僅在彈性搜索服務器所需的字段,以及詳細視圖,做q查詢與必填字段ID數據庫。

有沒有人有過這種經驗?

回答

1

這個決定實際上取決於你試圖通過彈性搜索來解決的問題。 最近我在一個使用彈性搜索的項目上工作。原因是加快搜索並提供更好的搜索結果。但是,從數據庫(mssql)查詢所選產品的詳細信息。 決定映射全部或幾個字段取決於你想要的彈性搜索。如果它爲了更好的搜索結果(結果+速度),那麼我建議你只映射那些幫助用戶搜索的字段。