ES框架以及檢索原理實現


  ES存儲存儲基於lucene實現,lucene是Apacha軟件基金的一個開源子項目,是一套全文檢索引擎架構,提供了完整的文本分析引擎、數據查詢引擎和數據索引引擎。

  1、lucene是一個高並發、高吞吐、可擴展的全文檢索庫。整體框架如下圖所示。

 

 

  lucene的全文索引主要包括索引創建和索引查詢兩個部分。數據進入lucene時先創建倒排索引。搜索數據直接根據倒排索引查詢數據。

  (1)索引創建流程:獲取文檔、構建文檔對象、文檔分詞、創建索引

 

    (2)索引查詢流程:根據關鍵字查詢索引、根據索引查找具體文檔、從而找到要查詢的內容。

 

 2、ES數據模型

  ES的數據模型由Index(索引)、Type(類型)、Document(文檔)組成。每個索引包含多個類型,每個類型包含多個文檔,每個文檔包含多個Field

 

 

3、ES分布式架構

(1)節點類型

ES集群包括MasterNode(主節點)、DataNode(數據節點)、IngestNode(提取節點)、CoordinatingNode(協調節點)和TribeNode(部落節點)

 

4、ES寫數據流程

  ES寫數據主要包括索引的創建、刪除,文檔的創建、刪除、更新等操作。ES會首先在主分區上執行寫操作,當主分區執行成功后,根據一致性要求,會在其他副本分區執行操作,主有達到一致性要求的幾點都執行成功后才會向客戶端發送成功響應。

 

 

 

 

5、ES讀數據流程

   ES處理讀請求時,協調節點會輪詢所有副本分片來達到負載均衡。

 

6、ES中的translog

  ES的事務日志文件為translog,translog記錄了與更新相關的事務操作日志。每一個分片都對應一個translog。ES寫數據時不是直接寫入磁盤,而是同時寫入內存和translog中。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM