
2、Elasticsearch全文檢索系統架構設計與實作
Elasticsearch全文檢索系統實作深入詳解2、Elasticsearch全文檢索系統架構設計與實作
2.1 Elasticsearch服務端
作為檢索引擎,資料是第一位的。
隻有将基礎資料存入到ES中,才能提供檢索服務。而類似Mysql關系型資料庫,初期需要我們:
1)設計庫表、庫表關聯等;
2)基礎資料入庫(程式入庫、手動入庫等)。
同樣的,
ES的建立索引 == Mysql的庫表建立 。(ES6.X最新版本中将去掉type類型)。
ES的Mapping&建立==Mysql的字段設計&建立。
根據不同基礎資料類型,
1)如果資料存儲在關系型資料mysql或oracle中,可以通過logstash插入資料。
2)如果本地存儲,或資料沒有格式化。
需要先将資料格式化,格式化為Json檔案,繼而通過java等語言實作批量插入資料。
參考:Elasticsearch批量導入本地Json檔案Java實作
2.2 本地Server端
可以通過Struts、Spring、Hibernate實作。
服務端的主要作用:
1)監聽某設定端口;
2)接收用戶端的請求(全文檢索、指定字段檢索等);
3)将請求解析後傳遞給Elasticsearch服務端。
4)接受到服務端的回報後,将傳回的大Json解析成前後端對接設定好的Json格式。
5)将轉換後的Json返給用戶端。
難點:
1)翻頁
——ES提供了相關翻頁接口,需要設定後目前請求的頁面以及每頁請求顯示的資料
條數。
2)高亮
——ES提供了相關高亮接口,需要根據設定的字段進行二次封裝。
2.3 本地用戶端
可以通過Javascript、Ajax實作,或者通過 AngularJS實作。
主要功能點:
1)界面呈現;
2)資料渲染。
3)檢索請求;
4)檢索結果呈現。
1)分頁頁
可以通過分頁插件實作。
後記
死磕ES,有問題歡迎大家提問探讨!