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核心概念对比示意图

Elasticsearch增、删、改、查操作深入详解(Elasticsearch教程02)|MVP讲堂
以上表为依据,
ES中的新建文档(在Index/type下)相当于Mysql中(在某Database的Table)下插入一行数据。

1、新建文档(类似mysql insert插入操作)

Elasticsearch增、删、改、查操作深入详解(Elasticsearch教程02)|MVP讲堂
创建成功如下显示:
Elasticsearch增、删、改、查操作深入详解(Elasticsearch教程02)|MVP讲堂
Elasticsearch增、删、改、查操作深入详解(Elasticsearch教程02)|MVP讲堂
2、检索文档(类似mysql search 搜索select*操作)
http://localhost:9200/blog/ariticle/1/ GET

检索结果如下:
Elasticsearch增、删、改、查操作深入详解(Elasticsearch教程02)|MVP讲堂
如果未找到会提示:
Elasticsearch增、删、改、查操作深入详解(Elasticsearch教程02)|MVP讲堂
查询全部文档如下:
Elasticsearch增、删、改、查操作深入详解(Elasticsearch教程02)|MVP讲堂

这里写图片描述
具体某个细节内容检索,
查询举例1:查询cotent列包含版本为1.0的信息。
http://localhost:9200/blog/
_search?pretty&q=content:1.0

Elasticsearch增、删、改、查操作深入详解(Elasticsearch教程02)|MVP讲堂
查询举例2:查询书名title中包含“enhance”字段的数据信息:
[root@5b9dbaaa1a ~]# curl -XGET 10.200.1.121:9200/blog/ariticle/_search?pretty -d ‘
Elasticsearch增、删、改、查操作深入详解(Elasticsearch教程02)|MVP讲堂
查询举例3:查询ID值为3,5,7的数据信息:
[root@5b9dbaaa148a ~]# curl -XGET 10.200.1.121:9200/blog/ariticle/_search?pretty -d ‘
Elasticsearch增、删、改、查操作深入详解(Elasticsearch教程02)|MVP讲堂
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/
Elasticsearch增、删、改、查操作深入详解(Elasticsearch教程02)|MVP讲堂
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/回结果
Elasticsearch增、删、改、查操作深入详解(Elasticsearch教程02)|MVP讲堂
Elasticsearch增、删、改、查操作深入详解(Elasticsearch教程02)|MVP讲堂
Elasticsearch增、删、改、查操作深入详解(Elasticsearch教程02)|MVP讲堂
**5、Kibana可视化分析
5.1、在索引blog上查询包含”university”字段的信息。**
Elasticsearch增、删、改、查操作深入详解(Elasticsearch教程02)|MVP讲堂
5.2、Kibana多维度分析
Elasticsearch增、删、改、查操作深入详解(Elasticsearch教程02)|MVP讲堂

上一篇:Visual Paradigm(四)Generating Documentation


下一篇:软件工程 工具之二—— PowerDesigner v12(一)