Elasticsearch全文檢索企業開發記錄總結(一):整體架構

一、需求背景

項目背景:開發項目爲酒店預訂App,ES實現全文檢索功能,類攜程app酒店搜索
項目架構:基於maven管理,SSM框架、mysql數據庫

二、架構設計

整體架構設計模塊分爲:
  • ES客戶端java API底層調用模塊
  • ES數據同步模塊
  • 業務數據處理模塊

    同步模塊的實現:
    1、整個全文檢索業務關係增加了redis隊列
    2、應用層與全文檢索服務解耦
    3、同步任務放到事件調度服務,採用線程池機制,具備失敗自動重試一定次數機制

ES數據同步設計

隊列數據設計:
數據結構:{“i”:“75”,“o”:2,“r”:0,“t”:9}
i:數據id,對應數據庫唯一標識(主鍵)
o:操作類型,例如:新增、修改、刪除等。
r:已經重試次數
t:同步類型,例如:酒店、房價等。

三、開發流程

  1. elasticsearch5.4.0 環境部署 及插件 ik + head +kibana等的安裝與配置
  2. 根據業務需求完成數據庫表與ES數據的交互格式的設計
  3. 創建Mapping、導入數據
  4. 創建ES客戶端,JAVA API的方法封裝供業務層調用
  5. 編寫業務同步模塊、ES業務處理服務模塊
  6. 利用多線程進行隊列消費實現數據同步

四、後期維護

針對ES數據同步開發獨立的功能進行細粒度業務數據同步,以完成相應的業務需求維護
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章