ElasticSearch(4)--使用Kibana实现增删改查
利用Kibana实现基本的CRUD操作
根据我们之前学到的内容,先启动es,再启动kibana,访问ip+5601(默认端口),我的环境是访问
192.168.0.108:5601
访问页面是
(1)点击左侧的Dev Tools,进入操作页面
(2)操作页面如下:
(3)Kibana的CRUD的相关操作
添加索引:
PUT /lib/
{
"settings":{
"index":{
"number_of_shards": 5,
"number_of_replicas": 1
}
}
}
其中
PUT /lib/:表示的是新建索引,相当于新建一个数据库
“number_of_shards”:3:表示的是分片的个数,注意,分片一旦成功分好,将不能再改变
分片就是将一个索引切分成多个,每一个就是一个分片
“number_of_replicas”:1:表示备份的数量
上图表示建立了一个名字是zyf的索引(数据库),当出现右边的信息的时候,表示我们已经创建成功了。
- 我们还可以直接用默认配置创建索引(数据库)
PUT lib2
- 查看某一个索引的配置:
GET /索引名称/_settings
例如:
GET /lib2/_settings
或者
GET lib2
结果如图
通过右边的结果可以看到
“number_of_shards”: “5” : 表示分片是5个
“number_of_replicas”:“1”:表示的是备份的数量是1
- 同时查看所有索引
GET _all/_settings
如上图所示,显示所有索引的详细配置。
添加文档
(1) 指定ID添加文档(用PUT)
文档相当于是数据库表中的一条记录
具体操作:
PUT /lib/user/1
{ "first_name" : "Jane",
"last_name" : "Smith",
"age" : 32,
"about" : "I like to collect rock albums",
"interests": [ "music" ]
}
- PUT /lib/user/1
表示当前的索引是lib(数据库)
当前的type是user(数据库中的一张表)
当前的文档的id是1(数据库中一条记录的主键)
/索引(数据库)/type(表)/主键
这里强调一点, PUT命令和下面的具体数据之间不要有空白行
(2)不指定ID添加文档(用POST方式)
上面我们学习了指定ID的方式添加文档,若我们不想指定ID呢?
如果我们不想指定ID,用POST方式进行提交就行,es默认生成一个ID(随机的无规律的)
POST /lib/user/
{ "first_name" : "Douglas",
"last_name" : "Fir",
"age" : 23,
"about": "I like to build cabinets",
"interests": [ "forestry" ]
}
可以看到我们没有指定ID,利用POST提交,ES为我们随机生成了一个ID
查询文档
(1)利用GET
(2)指定索引,类型,id
GET /lib/user/1
查询索引是lib,类型是type,索引是1的数据(可以理解为查询数据库是lib表明是user且记录的id为1的哪一行数据)
若我们想获取指定的字段的值,并不想获取所有得到字段
观察上面的结果我们将查询的字段,都放在了_source中,所以我们获取指定的字段只需要
GET /lib/user/1?_source=字段1字段2...
举例说明
GET /lib/user/1?_source=age,about
注意一下,字段之间用","隔开 ,不能有空格
即可以是 _source=a,b 但不能是_source=a, b(a和b之间有空格)
查看上面的结果可以看到,我们只查询出了指定字段age和about的值
更新文档
-
第一种方式就是用一个同样索引,类型和id的数据直接去覆盖掉,这时候result的结果显示为updated
如上图所示,我们将age做了修改,直接将其覆盖,可以看到右边的结果,其中_version和result字段都发生了改变。 -
第二种方式就是直接进行修改而不是覆盖的方式(使用POST)
POST lib/user/1/_update
{
"doc":{
"age":33
}
}
上面的含义是修改lib索引中type是user的且id是1的文档,_update表示更新操作,doc中的内容就是我们要修改的字段的值
(1)删除一个文档
DELETE /lib/user/1
(2)删除一个索引
DELETE /lib
综上所述删除用DELETE。删除索引时候,只用具体到索引,删除文档需要具体到指定类型(表)的具体的id