如何使用curl删除Elasticsearch Index数据

时间:2020-02-23 14:38:04  来源:igfitidea点击:

在Elasticsearch中,索引类似于关系数据库领域中的数据库。它是这样的:

MySQL => Databases => Tables => Columns/Rows
Elasticsearch => Indices => Types => Documents with Properties

索引是一个逻辑名称空间,它映射到一个或者多个主分片,并且可以具有零个或者多个副本分片。 Elasticsearch映射就像一个数据库架构,描述相似类文档应具有的"字段"或者"属性"。

当处理大量数据时,Elasticsearch索引可能会快速增长以耗尽本地存储。这可能需要删除不再需要的旧索引。在他的教程中,Ill指导我们完成删除Elasticsearch Index数据的过程。

如何删除Elasticsearch Index数据

首先使用curl获取集群中可用的Elasticsearch索引列表:

$curl http://<node-ip|hostname>:9200/_cat/indices

<node-ip>可以是localhost,Elasticsearch节点IP地址或者群集节点之一的主机名。见下面的例子

$curl http://10.1.1.18:9200/_cat/indices
green open graylog_309 dJr9peVJT5Kr4_nnzinzrw 4 0 20024903 0 3.3gb 3.3gb
green open graylog_325 cD9PeVslRTSNA_PlDAPZng 4 0   905913 0 175mb 175mb
green open graylog_324 4RpR8isyQBqu_h_ifnLpJA 4 0 20025091 0 3.3gb 3.3gb
green open graylog_322 F6TN9vCPQEaYcZlNhmMokQ 4 0 20018746 0 3.3gb 3.3gb
green open graylog_311 DccOlotNR9GKmusIhRGi1w 4 0 20012500 0 3.3gb 3.3gb
green open graylog_318 -SqQ5oEcRtSlZvqaZ_L1jg 4 0 20032700 0 3.3gb 3.3gb
green open graylog_307 DLoFntfVRY-91FyasXoCUg 4 0 20026500 0 3.3gb 3.3gb
green open graylog_308 Vygbzx-WR4WGkOWTM1ptmw 4 0 20027535 0 3.3gb 3.3gb

确定要删除的索引后,使用以下命令将其连同其数据一起删除

$curl -XDELETE http://<node-ip|hostname>:9200/<index-name>

参见示例:

$curl -XDELETE http://10.1.1.18:9200/graylog_308
{"acknowledged":true}

我们可以使用简单的bash循环删除多个索引

for i in graylog_307 graylog_308 graylog_309 graylog_311; do
 curl -XDELETE http://10.1.1.18:9200/${i}
done

我们可以通过重新检查可用列表来确认删除索引

$curl http://10.1.1.18:9200/_cat/indices