elasticsearch的索引(增删改查)管理
Posted 临江仙我亦是行人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了elasticsearch的索引(增删改查)管理相关的知识,希望对你有一定的参考价值。
1. 创建索引
# 语法
PUT /索引名/[类型名]/文档id
{
请求体
}
可以通过 postman 发送请求,也可以通过 kibana 发送请求,由于 kibana 有提示,所以我们选择kibana
索引名不能有大写字母
PUT Book
{
"error" : {
"root_cause" : [
{
"type" : "invalid_index_name_exception",
"reason" : "Invalid index name [Book], must be lowercase",
"index_uuid" : "_na_",
"index" : "Book"
}
],
"type" : "invalid_index_name_exception",
"reason" : "Invalid index name [Book], must be lowercase",
"index_uuid" : "_na_",
"index" : "Book"
},
"status" : 400
}
索引名是唯一的,不能重复,重复创建会出错
{
"error" : {
"root_cause" : [
{
"type" : "resource_already_exists_exception",
"reason" : "index [book/AlxnoOUPSPK_HBVPe1Qkwg] already exists",
"index_uuid" : "AlxnoOUPSPK_HBVPe1Qkwg",
"index" : "book"
}
],
"type" : "resource_already_exists_exception",
"reason" : "index [book/AlxnoOUPSPK_HBVPe1Qkwg] already exists",
"index_uuid" : "AlxnoOUPSPK_HBVPe1Qkwg",
"index" : "book"
},
"status" : 400
}
创建索引请求,什么都不指定
PUT book
创建索引请求,指定字段的类型,创建规则
PUT book
{
"mappings": {
"properties":{
"name": {
"type": "text"
},
"author": {
"type": "text"
},
"age": {
"type": "long"
},
"birthday" :{
"type": "date"
}
}
}
}
索引创建成功后,可以向索引中写入文档
# 如果自己的文档字段没有指定,那么es就会给我们默认配置字段类型
PUT book/_doc/1
{
"name": "雪中悍刀行",
"author": "烽火戏诸侯",
"age": 30,
"birthday": "2012-10-10"
}
PUT book/_doc/2
{
"name": "徐晓",
"author": "烽火戏诸侯",
"age": 50,
"birthday": "1970-01-11"
}
默认情况下,索引是具备读写权限的,当然这个读写权限可以关闭。
例如,关闭索引的写权限:
PUT book/_settings
{
"blocks.write": true
}
关闭之后,就无法添加文档了。关闭了写权限之后,如果想要再次打开,方式如下:
PUT book/_settings
{
"blocks.write": false
}
其他类似的权限有:
- blocks.write
- blocks.read
- blocks.read_only
2. 查看索引
请求查看方式,可以通过 GET 请求获取具体的信息
GET book
GET book/_settings
也可以同时查看多个索引信息
GET book,test/_settings
也可以查看所有索引信息
GET _all/_settings
获取索引的健康值
GET _cat/health
获取版本信息
GET _cat/indices?v
3. 修改
索引创建好之后,可以修改其属性
例如修改索引的副本数
PUT book/_settings
{
"number_of_replicas": 2
}
使用put覆盖修改(版本号会增加)基本已不再采用
PUT /test3/_doc/1
{
"name": "大将军",
"age": 45,
"birthday": "1970-01-11"
}
使用post修改,doc是固定格式,本例只修改name字段
POST /test3/_doc/1/_update
{
"doc":{
"name": "北凉王"
}
}
4. 删除索引
通过DELETE命令实现删除,根据你的请求判断是删除索引还是删除文档记录
DELETE book
删除一个不存在的索引会报错。
5. 索引打开/关闭
关闭索引:
一个关闭的索引几乎不占用系统资源,如果一个索引暂时不用,可以关闭它
POST book/_close
打开索引
POST book/_open
当然,可以同时关闭/打开多个索引,多个索引用 , 隔开,或者直接使用 _all 代表所有索引。
6. 复制索引
索引复制,只会复制数据,不会复制索引配置(新复制的索引book_new是1个分片1个副本,而book索引是1个分片2个副本,并没有把索引配置复制过去)
POST _reindex
{
"source": {"index":"book"},
"dest": {"index":"book_new"}
}
复制的时候,可以添加查询条件。
7. 索引别名
可以为索引创建别名,如果这个别名是唯一的,该别名可以代替索引名称。
POST /_aliases
{
"actions": [
{
"add": {
"index": "book",
"alias": "book_alias"
}
}
]
}
将 add 改为 remove 就表示移除别名:
POST /_aliases
{
"actions": [
{
"remove": {
"index": "book",
"alias": "book_alias"
}
}
]
}
可以添加多个别名,也可以删除多个别名
查看某一个索引的别名:
GET /book/_alias
查看某一个别名对应的索引(book_alias 表示一个别名):
GET /book_alias/_alias
可以查看集群上所有可用别名:
GET /_alias
以上是关于elasticsearch的索引(增删改查)管理的主要内容,如果未能解决你的问题,请参考以下文章
ES 17 - (底层原理) Elasticsearch增删改查索引数据的过程
(07)ElasticSearch 使用Kibana实现基增删改查
ElasticSearch01_简介安装es以及kibana详解倒排索引检索es基本信息增删改查文档