一、查看索引¶
1.1 查看所有的索引¶
Postman界面操作
1、新建目录【01-索引管理】

2、添加GET请求

3、填写GET请求192.168.1.121:9200/_cat/indices

命令行操作
1、在elk121节点上进行查看所有索引
[root@elk121 ~]# curl -X GET 192.168.1.121:9200/_cat/indices
green open .geoip_databases t7WLWAYvQLqt2yWC4dqR9A 1 1 43 4 87mb 43.5mb
1.2 查看单个索引¶
Postman界面操作
1、添加GET请求

2、填写GET请求192.168.1.121:9200/.geoip_databases

说明:.geoip_databases索引的使用和访问是为系统操作保留的,不能直接访问
命令行操作
1、在elk121节点上进行查看单个索引
[root@elk121 ~]# curl -X GET "http://192.168.1.121:9200/.geoip_databases"
{"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"Indices [.geoip_databases] use and access is reserved for system operations"}],"type":"illegal_argument_exception","reason":"Indices [.geoip_databases] use and access is reserved for system operations"},"status":400}
说明:.geoip_databases索引的使用和访问是为系统操作保留的,不能直接访问
二、创建索引¶
2.1 创建默认索引(默认是一个分片和一个副本)¶
Postman界面操作
1、添加GET请求,并修改请求模式为PUT

2、填写PUT请求192.168.1.121:9200/es1,创建默认索引es1

3、打开ES Head扩展程序查看结果

命令行操作
1、在elk121节点上进行创建默认索引
| [root@elk121 ~]# curl -X PUT "http://192.168.1.121:9200/es1" |
|---|
2.2 创建指定的分片¶
Postman界面操作
1、添加GET请求,并修改请求模式为PUT

2、填写PUT请求192.168.1.121:9200/es2,创建索引es2
{
"settings":{
"number_of_shards": 3
}
}

3、打开ES Head扩展程序查看结果,3个分片1个副本

命令行操作
1、在elk121节点上进行创建指定分片
[root@elk121 ~]# curl -X PUT "http: 192.168.1.121:9200/es2" -H 'Content-Type: application/json' -d '{
"settings": {
"number_of_shards": 3
}
}'
2.3 创建指定的分片和副本¶
Postman界面操作
1、添加GET请求,并修改请求模式为PUT

2、填写PUT请求192.168.1.121:9200/es3,创建默认索引es3
{
"settings":{
"number_of_shards": 5,
"number_of_replicas":2
}
}

3、打开ES Head扩展程序查看结果,5个分片2个副本

命令行操作
1、在elk121节点上进行创建指定分片
[root@elk121 ~]# curl -X PUT "http://192.168.1.121:9200/es3" -H 'Content-Type: application/json' -d '{
"settings": {
"number_of_shards": 5,
"number_of_replicas": 2
}
}'
三、修改索引¶
3.1 修改副本¶
Postman界面操作
1、填写PUT请求192.168.1.121:9200/es3/_settings,并修改索引es3的副本数为1
{
"number_of_replicas": 1
}

2、打开ES Head扩展程序查看结果,5个分片1个副本

命令行操作
1、在elk121节点上修改索引es3的副本数为1
[root@elk121 ~]# curl -X PUT "http:// http://192.168.1.121:9200/es3/_settings" -H 'Content-Type: application/json' -d '{
"number_of_replicas": 1
}'
注意事项:
- 副本数不能随便设置,副本数+1不能大于集群机器数量。比如上面的es3中如果设置副本数为3,则会发生部分副本无法正常分配的情况,从而导致无法正常工作。
3.2 修改分片(不能修改)¶
Postman界面操作
1、填写PUT请求192.168.1.121:9200/es3/_settings,并修改索引es3的分片数为1
{
"number_of_shards": 1
}

说明:分片数无法进行修改
命令行操作
1、在elk121节点上进行副本修改
[root@elk121 ~]# curl -X PUT "http:// http://192.168.1.121:9200/es3/_settings" -H 'Content-Type: application/json' -d '{
"number_of_shards": 1
}'
补充:文档写入哪个分片编号计算公式: hash(文档ID) % primary_shards_numbers
四、删除索引¶
4.1 删除单个索引¶
Postman界面操作
1、添加GET请求,并修改请求模式为DELETE

2、填写DELETE请求192.168.1.121:9200/es1,删除索引es1

3、打开ES Head扩展程序查看结果,es1索引已经被删除

命令行操作
1、在elk121节点上进行删除单个索引es1
| [root@elk121 ~]# curl -X DELETE 192.168.1.121:9200/es1 |
|---|
4.2 基于通配符删除多个索引¶
Postman界面操作
1、添加GET请求,并修改请求模式为DELETE

2、填写DELETE请求192.168.1.121:9200/es*,删除以es开头的索引

3、打开ES Head扩展程序查看结果,es开头的索引已经被删除

命令行操作
1、在elk121节点上进行删除以es开头的索引
| [root@elk121 ~]# curl -X DELETE 192.168.1.121:9200/es* |
|---|
五、索引别名¶
5.1 添加索引别名¶
5.1.1 给单个索引添加别名¶
Postman界面操作
1、添加GET请求,并修改请求模式为POST

2、填写POST请求192.168.1.121:9200/_aliases,给es1添加索引别名
{
"actions": [
{
"add": {
"index": "es1",
"alias": "Linux2024"
}
}
]
}

3、打开ES Head扩展程序查看结果,给es1添加索引别名Linux2024

命令行操作
1、在elk121节点上给es1添加索引别名
[root@elk121 ~]# curl -X POST "http://192.168.1.121:9200/_aliases" -H 'Content-Type: application/json' -d '
{
"actions": [
{
"add": {
"index": "es1",
"alias": "Linux2024"
}
}
]
}'
5.1.2 给多个索引添加别名¶
Postman界面操作
1、添加GET请求,并修改请求模式为POST

2、填写POST请求192.168.1.121:9200/_aliases,分别给es1、es2、es3添加索引别名
{
"actions": [
{
"add": {
"index": "es1",
"alias": "Linux2023"
}
},
{
"add": {
"index": "es2",
"alias": "Linux2023"
}
},
{
"add": {
"index": "es3",
"alias": "Linux2023"
}
}
]
}

3、打开ES Head扩展程序查看结果,es1、es2、es3添加索引别名Linux2023

命令行操作
1、将JSON操作保存到名为actions.json的文件中
{
"actions": [
{
"add": {
"index": "es1",
"alias": "Linux2023"
}
},
{
"add": {
"index": "es2",
"alias": "Linux2023"
}
},
{
"add": {
"index": "es3",
"alias": "Linux2023"
}
}
]
}
2、在elk121节点上分别给es1、es2、es3添加索引别名
| [root@elk121 ~]# curl -XPOST "http://192.168.1.121:9200/_aliases" -H "Content-Type: application/json" -d @actions.json |
|---|
5.2 查看索引别名¶
Postman界面操作
1、添加GET请求

2、填写GET请求http://192.168.1.121:9200/_aliases,查看索引的所有别名

命令行操作
1、在elk121节点上查看索引的所有别名
| [root@elk121 ~]# curl -XGET "http://192.168.1.121:9200/_aliases" |
|---|
5.3 删除索引别名¶
Postman界面操作
1、添加GET请求,并修改请求模式为POST

2、填写POST请求http://192.168.1.121:9200/_aliases,删除es1索引的别名
{
"actions": [
{
"remove": {
"index": "es1",
"alias": "Linux2023"
}
}
]
}

3、打开ES Head扩展程序查看结果,es开头的索引已经被删除

命令行操作
1、在elk121节点上进行删除es1索引的别名
curl -X POST "http://192.168.1.121:9200/_aliases" -H 'Content-Type: application/json' -d '
{
"actions": [
{
"remove": {
"index": "es1",
"alias": "Linux2023"
}
}
]
}'
5.4 修改索引别名¶
Postman界面操作
1、添加GET请求,并修改请求模式为POST

2、填写POST请求http://192.168.1.121:9200/_aliases,修改es1索引的别名为Linux2023

3、打开ES Head扩展程序查看结果,es1索引的别名修改为Linux2023

命令行操作
1、在elk121节点上修改es1索引的别名为Linux2023
[root@elk121 ~]# curl -X POST "http://192.168.1.121:9200/_aliases" -H 'Content-Type: application/json' -d '
{
"actions": [
{
"remove": {
"index": "es1",
"alias": "Linux2024"
}
},
{
"add": {
"index": "es1",
"alias": "Linux2023"
}
}
]
}'
六、关闭索引¶
Postman界面操作
1、添加GET请求,并修改请求模式为POST

2、填写POST请求http://192.168.1.121:9200/es1/_close,关闭es1索引

3、打开ES Head扩展程序查看结果,es1索引已经被关闭

命令行操作
1、在elk121节点上关闭es1索引
| [root@elk121 ~]# curl -X POST "http://192.168.1.121:9200/es1/_close" |
|---|
七、打开索引¶
Postman界面操作
1、添加GET请求,并修改请求模式为POST

2、填写POST请求http://192.168.1.121:9200/es1/_open,打开es1索引

3、打开ES Head扩展程序查看结果,es1索引已经被打开

命令行操作
1、在elk121节点上打开es1索引
| [root@elk121 ~]# curl -X POST "http://192.168.1.121:9200/es1/_open" |
|---|
八、索引的其他操作¶
官方索引操作文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/indices.html

九、创建索引规范¶
1、索引名称不要以".",”_"开头;
2、索引名称不能出现大写,必须小写;
3、生产环境中禁令避免使用通配符,尤其是除操作;