初識es
es是什麼?
es是基於Apache Lucene的開源分佈式(全文)搜索引擎,,提供簡單的RESTful API來隱藏Lucene的複雜性。html
es除了全文搜索引擎以外,還能夠這樣描述它:java
- 分佈式的實時文件存儲,每一個字段都被索引並可被搜索
- 分佈式的實時分析搜索引擎
- 能夠擴展到成百上千臺服務器,處理PB級結構化或非結構化數據。
es的下載與安裝
java for windows
es對於java jdk的版本有需求,必須是java1.8及以上版本。python
安裝步驟參考:https://www.cnblogs.com/Neeo/articles/10368280.htmlgit
es for windows
es開箱即用,也就是解壓便可使用,安裝參考https://www.cnblogs.com/Neeo/articles/10371306.htmles6
kibana for windows
Kibana是一個爲ElasticSearch 提供的數據分析的 Web 接口。可以使用它對日誌進行高效的搜索、可視化、分析等各類操做。數據庫
安裝參考:https://www.cnblogs.com/Neeo/articles/10371213.htmlwindows
es的快速上手
es的數據組織
- 邏輯:索引>l類型> 文檔
- 與關係型數據庫對比理解
關係型數據庫 | es |
---|---|
數據庫database | 索引indices |
表table | 類型type |
記錄 | 文檔documents |
字段 | 字段fields |
-
文檔服務器
- 文檔的特性:自我包含,層次型、結構靈活、無模式
- 類型:在es6.x版本開始,一個索引下面只能有一個類型,類型是是文檔的容器,而且,類型記錄了字段和值的映射關係。
- 索引,索引是映射類型的容器,elasticsearch中的索引是一個很是大的文檔集合。索引存儲了映射類型的字段和其餘設置。而後它們被存儲到了各個分片上了。
-
物理:節點,分片app
- 節點,一個集羣至少有一個節點,節點內能夠有多個索引。在建立索引時,默認建立5個主分片,每一個主分片搭配一個複製分片。
- 分片:文檔存儲在各個分片上,一個分片也是一個Lucene索引。
- 倒排索引,倒排索引是一個包含
不重複
詞條的文檔,咱們稱該文檔爲倒排文檔。詳情參考 - es的索引和Lucene的索引對比
- es的索引是由多個分片組成,而每一個分片則是一個Lucene索引。
- 一個Lucene索引能存儲不超過21億篇文檔,或者不超過2740億個惟一詞條。
基本操做
- 簡單操做
PUT s18/doc/1 { "name":"大刀" } PUT s18/doc/2 { "name":"鵬程" } PUT s18/doc/3 { "name":"laowang" }
上例中,咱們添加3篇文檔,首先檢查索引s18
是否存在,不存在先建立,存在則添加(或更新)文檔。elasticsearch
GET s18/doc/1 # 查看指定文檔 GET s18/doc/_search # 查看全部文檔 GET s18/doc/_search?q=name:laowang # 按條件查詢
上例是簡單的查詢語句。
其餘查詢:
GET s18/_mapping # 查看索引的映射類型 GET s18/_settings # 查看索引的設置信息 GET s18 # 查看索引的詳情
刪除
DELETE s18/doc/1 # 刪除指定文檔 DELETE s18 # 刪除索引