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併發控制等
未完待續........