ElasticSearch-基础-09-index-operate
2025-01-22 08:19:30 1.5k 字 #elasticSearch This post is also available in English and alternative languages.ElasticSearch版本:6.5.0(点击跳转官方文档)
1. 索引名格式限制
仅小写
不能包含\ , / , * , ? , “ , < , > , | , ‘’(空格字符) , 、 , #
7.0版本之前可以含有’:'冒号;7.0版本之后不再支持
不允许 以 - , _ , + 开头
索引名称长度不能超过 255字节
2. 手动创建索引
创建一个空索引
1 2 3
| PUT twitter
curl -XPUT 'http://127.0.0.1:9200/twitter'
|
返回结果
1 2 3 4 5
| { "acknowledged" : true, "shards_acknowledged" : true, "index" : "facebook" }
|
3. 手动创建索引并设置索引分片
手动创建索引,并 设置索引的 分片数量 和 副本分片数量
1 2 3 4 5 6 7 8 9
| PUT twitter { "settings": { "index": { "number_of_shards": 5, "number_of_replicas": 0 } } }
|
OR
1 2 3 4 5 6 7
| PUT twitter { "settings" : { "number_of_shards" : 5, "number_of_replicas" : 0 } }
|
如果要实时修改 number_of_replicas ,使用如下命令
1 2 3 4
| PUT /twitter/_settings { "number_of_replicas": 1 }
|
4. 手动创建索引并设置映射
创建名称’twitter’的索引;设置5个主分片,0个副本分片;mapping设置三个字段,并分别设置字段类型。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| PUT twitter { "settings": { "number_of_shards": 5, "number_of_replicas": 0 }, "mappings": { "_doc": { "properties": { "user": { "type": "text" }, "post_date": { "type": "keyword" }, "message": { "type": "text" } } } } }
|
5. 手动创建索引 并 设置映射(2)
先创建一个索引,然后再追加mappings设置
1 2 3 4 5 6 7 8 9
| PUT twitter { "settings": { "index": { "number_of_shards": 5, "number_of_replicas": 0 } } }
|
追加mappings设置
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| put twitter/_mapping/_doc { "properties": { "user": { "type": "text" }, "post_date": { "type": "keyword" }, "message": { "type": "text" } } }
|
6. 查询索引Mappings映射
查询twitter索引的映射
1 2 3
| GET /twitter/_mapping/_doc
GET /_mapping/_doc
|
查询 所有索引的 Mappings映射
1 2 3
| GET /_all/_mapping
GET /_mapping
|
7. 快速创建索引(自动创建索引)
使用 ‘PUT’ 方法,将数据插入到索引中。 如果索引还不存在,会自动创建一个索引(通过 action.auto_create_index 配置,默认为true)
如下示例,创建名为’twitter’的索引:
1 2 3 4 5 6
| PUT twitter/_doc/1 { "user" : "kimchy", "post_date" : "2019-10-30", "message" : "trying out Elasticsearch" }
|
返回结果
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| { "_index" : "twitter", "_type" : "_doc", "_id" : "1", "_version" : 1, "result" : "created", "_shards" : { "total" : 2, "successful" : 2, "failed" : 0 }, "_seq_no" : 0, "_primary_term" : 1 }
|
注意,自动创建索引,使用的是动态映射,生产环境慎用。
8. 删除索引
删除索引,使用 DELETE 关键字
DELETE twitter1
| curl -XDELETE 'http://127.0.0.1:9200/twitter?pretty'
|
9. 查询索引相关信息
GET twitter1 2
| curl -XGET '127.0.0.1:9200/twitter?pretty' curl -XGET 'http://127.0.0.1:9200/twitter?pretty'
|
返回结果中,包含 mappings映射信息、索引创建时间、主副分片数量、索引名称
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| { "twitter" : { "aliases" : { }, "mappings" : { "_doc" : { "properties" : { "message" : { "type" : "text" }, "post_date" : { "type" : "keyword" }, "user" : { "type" : "text" } } } }, "settings" : { "index" : { "creation_date" : "1572504908444", "number_of_shards" : "5", "number_of_replicas" : "0", "uuid" : "5vvAhRzASJSbA4dIXFghRw", "version" : { "created" : "6050099" }, "provided_name" : "twitter" } } } }
|
10. 索引是否存在
返回结果
11. 打开/关闭 索引
为了维护index索引的元数据,或是其他原因, index索引 允许 关闭/打开。索引关闭之后,会被禁止读写。关闭索引几乎没有集群消耗。
关闭索引1 2 3
| POST /twitter/_close
curl -XPOST 'http://127.0.0.1:9200/twitter/_close?pretty'
|
打开索引1 2 3
| post /twitter/_open
curl -XPOST 'http://127.0.0.1:9200/twitter/_open?pretty'
|
12. 类型是否存在
检查twitter索引中是否存在_doc类型
1
| HEAD twitter/_mapping/_doc
|
13. 查看索引设置
response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| { "twitter" : { "settings" : { "index" : { "creation_date" : "1573376199157", "number_of_shards" : "5", "number_of_replicas" : "0", "uuid" : "sUrSGMf6SZiRzgPW87wGhQ", "version" : { "created" : "6050099" }, "provided_name" : "twitter" } } } }
|
- creation_date:创建时间。
- number_of_shards:每个索引的主分片数。
- number_of_replicas:每个主分片的副本数。
可以同时查看多个索引
1
| GET /twitter,testdata/_settings
|
response
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| { "testdata" : { "settings" : { "index" : { "creation_date" : "1567758185892", "number_of_shards" : "5", "number_of_replicas" : "1", "uuid" : "OYPXyTPzQLak711_nBzCsQ", "version" : { "created" : "6050099" }, "provided_name" : "testdata" } } }, "twitter" : { "settings" : { "index" : { "creation_date" : "1573376199157", "number_of_shards" : "5", "number_of_replicas" : "0", "uuid" : "sUrSGMf6SZiRzgPW87wGhQ", "version" : { "created" : "6050099" }, "provided_name" : "twitter" } } } }
|
查看进集群中所有索引的设置
14. Reference