天天看點

Elasticsearch全文檢索系統實作深入詳解2、Elasticsearch全文檢索系統架構設計與實作

Elasticsearch全文檢索系統實作深入詳解2、Elasticsearch全文檢索系統架構設計與實作

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,有問題歡迎大家提問探讨!