1. 程式人生 > >Elasticsearch增、刪、改、查操作深入詳解(Elasticsearch教程02)|MVP講堂

Elasticsearch增、刪、改、查操作深入詳解(Elasticsearch教程02)|MVP講堂

作者:阿里雲MVP 銘毅

往期內容:
死磕 Elasticsearch 方法論:普通程式設計師高效精進的 10 大狠招!
Elasticsearch學習,請先看這一篇!(Elasticsearch教程01)

引言:
對於剛接觸ES的童鞋,經常搞不明白ES的各個概念的含義。尤其對“索引”二字更是與關係型資料庫混淆的不行。本文通過對比關係型資料庫,將ES中常見的增、刪、改、查操作進行圖文呈現。能加深你對ES的理解。同時,也列舉了kibana下的圖形化展示。

ES Restful API GET、POST、PUT、DELETE、HEAD含義:
1)GET:獲取請求物件的當前狀態。
2)POST:改變物件的當前狀態。
3)PUT:建立一個物件。
4)DELETE:銷燬物件。
5)HEAD:請求獲取物件的基礎資訊。

Mysql與Elasticsearch核心概念對比示意圖

image
以上表為依據,
ES中的新建文件(在Index/type下)相當於Mysql中(在某Database的Table)下插入一行資料。

1、新建文件(類似mysql insert插入操作)

image
建立成功如下顯示:
image
image
2、檢索文件(類似mysql search 搜尋select*操作)
http://localhost:9200/blog/ariticle/1/ GET

檢索結果如下:
image
如果未找到會提示:
image
查詢全部文件如下:
image

這裡寫圖片描述
具體某個細節內容檢索,
查詢舉例1:查詢cotent列包含版本為1.0的資訊。
http://localhost:9200/blog/


_search?pretty&q=content:1.0

image
查詢舉例2:查詢書名title中包含“enhance”欄位的資料資訊:
[[email protected] ~]# curl -XGET 10.200.1.121:9200/blog/ariticle/_search?pretty -d ‘
image
查詢舉例3:查詢ID值為3,5,7的資料資訊:
[[email protected] ~]# curl -XGET 10.200.1.121:9200/blog/ariticle/_search?pretty -d ‘
image
3、更新文件(類似mysql update操作)
http://localhost:9200/blog/ariticle/1/_update/

POST
{“script”:”ctx._source.content = ”new version 2.0 20160714”“}

更新後結果顯示:
{

“_index”: “blog”,
“_type”: “ariticle”,
“_id”: “1”,
“_version”: 2,
“_shards”: {
”total”: 2,
“successful”: 1,
“failed”: 0
}
}
查詢&驗證更新後結果:(對比可知,版本號已經更新完畢)
http://localhost:9200/blog/ariticle/1/
image
script.groovy.sandbox.enabled: true
script.engine.groovy.inline.search: on
script.engine.groovy.inline.update: on
script.inline: on
script.indexed: on
script.engine.groovy.inline.aggs: on
index.mapper.dynamic: true

4、刪除文件(類似mysql delete操作)
http://localhost:9200/blog/ariticle/8/回結果
image
image
image
**5、Kibana視覺化分析
5.1、在索引blog上查詢包含”university”欄位的資訊。**
image
5.2、Kibana多維度分析
image