一、查看索引

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、生产环境中禁令避免使用通配符,尤其是除操作;