ElasticSearch5.6.1索引、类型、文档的增删查改--利用RESTful接口和Kibana可视化工具
来源:互联网 发布:淘宝网借贷 编辑:程序博客网 时间:2024/05/18 21:39
本文主要是ElasticSearch5.6.1索引、类型、文档的增删查改--利用RESTful接口和Kibana可视化工具。
关于ElasticSearch5.6.1的环境搭建,请参考我另一篇博文。
ElasticSearch5.6.1环境搭建与运行
http://blog.csdn.net/deliciousion/article/details/78055724
有关ElasticSearch的介绍和一些基本概念,请参阅我的另一篇博文。
ElasticSearch介绍和基本概念http://blog.csdn.net/deliciousion/article/details/78050251有关ElasticSearch的可视化工具Kibana介绍与安装,请参阅我的另一篇博文。
Kibana5.6.1的环境塔建与运行http://blog.csdn.net/deliciousion/article/details/78057459
ElasticSearch是一个搜索引擎,但同时也作数据存储。但ElasticSearch里面的概念可能跟我们以前接触的关系型数据库很不一样。
关系型数据库
ElasticSearch
数据库Database
索引Index,支持全文检索
表Table
类型Type
数据行Row
文档Document,但不需要固定结构,不同文档可以具有不同字段集合
数据列Column
字段Field
模式Schema
映像Mapping
所以这里所说的索引的增删查改,就相当于“数据库Schema”的增删查改。
对于ElasticSearch的索引操作,不管借助什么工具与命令,主要是使用它提供的RESTful接口。
所以有必要对RESTful接口进行简单介绍。
演示过程中我会对每种操作给出两种方法,一个是curl命令的操作,一个是Kibana可视化工具的操作。
有关curl命令的介绍与使用,可参阅我的另一篇博文强大的curl命令的介绍和一般用法
http://blog.csdn.net/deliciousion/article/details/78062521
下面从这几个方面讲解:
1.ElasticSearch的RESTful接口。
2.如果在curl和Kibana中使用RESTful接口。
3.利用curl和Kibana对ElasticSearch的索引进行增删查改。
4.利用curl和Kibana对ElasticSearch的类型和文档进行增删查改。
1.ElasticSearch的RESTful接口REST(Representational State Transfer)意即“表现层状态转化”,RESTful是目前流行的一种互联网软件架构,具有结构清晰、符合标准、易于理解、扩展方便等特点,这种架构下的每一个URI代表一种资源,客户端通过GET(获取资源)、POST(新建或更新资源)、PUT(更新资源)、DELETE(删除资源)方式来对服务器端资源进行操作。
2.如果在curl和Kibana中使用RESTful接口我们可以利用curl的 -X的选项来使用RESTful接口。
比如下面的命令,就是在ElasticSearch中利用RESTful的PUT方法创建了一个索引,我们先抛开语法,后面会讲。
curl -X PUT http://localhost:9200/school上面的方法是用命令行的方式,大家在学习或者使用过程中,如果只用ElasticSearch,那么这种方式应该是比较方便的。
另外一种方法就是在Kibana中使用RESTful接口,非常方便,不但可以把输入的命令保存下来,还可以写注释,输入的时候还有补全的功能,对初学者来说,十分便利。
下面是kibana5.6.1的界面。在左边菜单的Dev Tools(开发工具)中,我们可以使用RESTful接口。
进入Dev Tools(开发工具),我们可以看到Console(控制台)输入框,这里可以输入多个RESTful请求命令。并且允许添加注释。
点击运行后,就可以在右边看到运行的结果了。
在上面的Kibana的演示中,我们同样在ElasticSearch中添加了索引school,但请求命令简单了许多,但其实是一样的,只是在Kibana中,我们不需要使用主机名和端口了。
3.利用curl和Kibana对ElasticSearch的索引进行增删查改3.1创建索引
单纯创建索引很简单
只需要一个索引名就可以了。
curl
genfumihirosAir:~ smallruan$ curl -X PUT http://127.0.0.1:9200/school{"acknowledged":true,"shards_acknowledged":true,"index":"school"}
这里插入一个小知识点,运行的结果都是以JSON格式返回的,默认是不带格式输出,这样对我们来说不直观。
如果我们在请求URL的时候加上“?pretty”那么结果就会以缩进的形式返回,看起来很直观。效果如下,所以后面演示,通通加入这个“?pretty”。
Kibana中输入不需要添加?pretty,也会自动缩进。
genfumihirosAir:~ smallruan$ curl -X PUT http://127.0.0.1:9200/school?pretty{ "acknowledged" : true, "shards_acknowledged" : true, "index" : "school"}Kibana
#添加school索引PUT school
返回结果其实与curl无异。
如果添加不成功会有错误信息,比如下面重复添加。
3.2 查询索引
通过GET请求方法查询刚刚添加的索引
curl
genfumihirosAir:~ smallruan$ curl -X GET http://127.0.0.1:9200/school?pretty{ "school" : { "aliases" : { }, "mappings" : { }, "settings" : { "index" : { "creation_date" : "1506151277638", "number_of_shards" : "5", "number_of_replicas" : "1", "uuid" : "LueU3RqxRtSaCvB4QPxaSg", "version" : { "created" : "5060199" }, "provided_name" : "school" } } }}Kibana
#获取school索引GET school
从返回的结果我们可以观察到该索引的“number_ofshards”分片数、“number_of_replicas”副本数,等一系列的索引重要信息。
3.3 删除一个索引
crul
genfumihirosAir:~ smallruan$ curl -X DELETE http://127.0.0.1:9200/school?pretty{ "acknowledged" : true}再通过GET请求方法查询刚刚删除的索引,会报状态码404,表示索引找不到。
genfumihirosAir:~ smallruan$ curl -X GET http://127.0.0.1:9200/school?pretty{ "error" : { "root_cause" : [ { "type" : "index_not_found_exception", "reason" : "no such index", "resource.type" : "index_or_alias", "resource.id" : "school", "index_uuid" : "_na_", "index" : "school" } ], "type" : "index_not_found_exception", "reason" : "no such index", "resource.type" : "index_or_alias", "resource.id" : "school", "index_uuid" : "_na_", "index" : "school" }, "status" : 404}kibana
#删除school索引DELETE school
索引的增删查演示完毕,但实际上,这并没有实际意义,因为这就相当于我们新建了一个“数据库”(index),里面并没有“表”(type)、“数据”(document)。
4.利用curl和Kibana对ElasticSearch的类型和文档进行增删查改
上一节,我们添加了索引(数据库),这一节我们来添加类型(表)和文档(记录或数据)。
4.1 添加类型并指定字段。
添加类型,相当于添加表,我们还要添加表的字段信息。
下面添加一个course类型,course类型下有两个字段,course_name课程名,creditI学分。借助_mapping内部命令。表示定义字段的映射关系。
其它,PUT跟POST都可以添加。
curl
curl -XPUT "http://127.0.0.1:9200/school/course/_mapping" -H 'Content-Type: application/json' -d'{ "properties": { "course_name": {"type":"text"}, "credit": {"type":"integer"} }}'kibana
#添加课程表类型并添加字段信息PUT school/course/_mapping{ "properties": { "course_name": {"type":"text"}, "credit": {"type":"integer"} }}4.2 查看类型及字段信息
通过查看索引信息可以,看到刚才添加的类型和字段信息。如下红框内容所示
kibana
4.3 添加文档
现在表添加后并没有数据,我们还要为里面插入数据。
现在我们插入两条数据
我们既可以利用PUT也可以利用POST,PUT要指定文档ID,POST可以用UUID自动生成一个文档ID
curl
curl -XPOST "http://127.0.0.1:9200/school/course" -H 'Content-Type: application/json' -d'{ "name": "数学", "credit":"4"}'
curl -XPOST "http://127.0.0.1:9200/school/course" -H 'Content-Type: application/json' -d'{ "name": "英语", "credit":"3"}'kibana
#添加两条记录到course课程表POST school/course{ "name": "数学", "credit":"4"}POST school/course{ "name": "英语", "credit":"3"}
通过下面的查询URL,可以查到刚才添加的两条数据。
通过下面的GET命令,加上一个特殊的内部_search命令,通常带_开头的都是内部定义的。比如很多默认字段也是以_下划线开头的。
最后如果会用kibana,也可以真接在Management管理中添加索引,然后在Discover发现 中查看数据。具体步骤如下。
RESTful 接口的一般用法总结如下:
[GET/POST/PUT/DELETE] <index>/<type>/[<id>]
ElasticSearch的语句包括可能的如下几个部分:
- ElasticSearch5.6.1索引、类型、文档的增删查改--利用RESTful接口和Kibana可视化工具
- 分布式搜索elasticsearch 索引文档的增删改查(RESTful)
- ElasticSearch5.X 增删改查
- 分布式搜索elasticsearch 索引文档的增删改查 入门
- 分布式搜索elasticsearch 索引文档的增删改查 入门
- 分布式搜索elasticsearch 索引文档的增删改查 入门
- _head插件对elasticsearch 索引文档的增删改查
- Elasticsearch系列(四)----Elasticsearch索引文档的增删改查
- Lucene索引的增删改查和二次检索
- lucene4.4 索引的增删改查
- lucene索引的增删改查
- 02-lucene索引的增删改查
- mysql索引的增删改查
- ElasticSearch5.4.3 环境搭建 2017 (3-可视化分析工具Kibana)
- XML文档的增删改查
- 利用Solrj对索引进行增删改查
- Lucene二(域选项、文档基本信息、索引的增删改查)
- jdbc增删改查的工具类
- 【西南交通大学第十三届ACM决赛-重现赛】 A B E F H K
- ssh在myeclipse中的
- kubernetes initcontainer <=1.5 yaml 例子
- 欢迎使用CSDN-markdown编辑器 (1)
- JavaEE核心API--Servlet
- ElasticSearch5.6.1索引、类型、文档的增删查改--利用RESTful接口和Kibana可视化工具
- Java 9正式发布
- VirtualBox配置相关
- 面试问题
- C语言比较两个数的大小使用if-else语句和条件运算符
- Linux下mongodb部署
- 【数据结构笔记】三、树与二叉树
- 清除浮动的方法及优缺点
- python 捕捉和模拟鼠标键盘操作