1. 程式人生 > >Elasticsearch知識點總結

Elasticsearch知識點總結

     實習期間接觸到了Elasticsearch,所以就係統的學習了一下 Elasticsearch。本文是自己在Elasticsearch學習過程

中的知識結構總結,這樣對Elasticsearch有一個全貌的認識,具體的細節點和開發可參考本文找對應的資料。

        一、什麼的Elasticsearch?為什麼要有它?,原理

        1)以往基本SQL的查詢檢索的不足

  •       無法做到匹配查詢
  •       like查詢實現慢

         2)倒排索引

               這是搜尋引擎打原理,網上很多資料介紹。

         理解如下:

正常來說我們是在文件裡面找某些關鍵詞,而倒排索引就是通過關鍵詞找出某些文件。,所以是反著來的。

比如:

1,文藝片電影    --->分詞:文藝片|電影

2,好的文藝片    --->分詞:好的|文藝片

3,最新上映文藝片    --->分詞:最新上映|文藝片

分詞後所有詞打ids有4個,就是4個不同的詞

建立倒排索引:

關鍵詞 包含關鍵詞的ids
文藝片 1,2,3
電影 2,
好的

2,

           這裡的每個id對應著一篇包含該關鍵詞打文件。

      二、lucene,它就是一個jar包,裡面包含了封裝好的各種建立的倒排索引、以及搜尋的程式碼,包括各種演算法,用java開發時引入lucene jar即可,然後基於lucene的api去開發.利用lucene,就可以對已有打資料建立索引,然後進行搜尋,(換句話說,lunece封裝來搜尋引擎打功能)。

      Elasticsearch 封裝了lucene,實現了分散式lucene!,提供更剪輯恩打api.

以下特性:高可用(副本機制)

                          高併發:(索引)

                          分散式:(多機

       關鍵詞:   全文檢索,結構化檢索,資料分析,分散式搜尋引擎

   三、關鍵概念(可與傳統資料庫對比學習)

       index

       type

       document

       shard -->replica(副本),primary

   四、安裝使用

       1,安裝jdk

       2,   下載解壓Elasticsearch安裝包

3,啟動Elasticsearch : bin/elasticreaserch.bat

       4, 檢查是否啟動成功。 http://localhost:9200/?pretty

       5,修改叢集名稱:elasticsearch.yml

       6,下載 kibana安裝包,並啟動

    五、query DSL語法

         get ,put等,即如何檢索資料和如何建立索引等語法規則。

         包括如何實現:1)全文檢索,2)條件查詢 ,3)分頁查詢 4)高亮搜尋,5)聚合分析等。

    六、Elasticsearch架構

          1、分片機制

          2、叢集發現機制

          3、shard負載均衡

          4、ES擴容

          5、master節點管理元資料

          6、shard和replica機制

     七、搜尋引擎原理

                timeout超時機制

               Elasticserach併發控制等

               未完待續........