Elasticsearch类型数据删除

时间:2017-06-02 21:31:28

标签: elasticsearch

是否可以删除elasticsearch索引中特定类型的所有文档? - 它是否也会影响类型映射? - 我想保留该类型的映射。

使用elasticsearch 2.2

1 个答案:

答案 0 :(得分:1)

找到与此here相关的答案。以下内容直接来自该答案。

您可以使用delete-by-query插件43。这是一个例子:

我们创建一个包含两种类型的索引并添加一些文档:

POST /_bulk
{"index":{"_index":"mammals","_type":"people"}}
{"tag_line":"I am Mike"}
{"index":{"_index":"mammals","_type":"people"}}
{"tag_line":"I am Hanna"}
{"index":{"_index":"mammals","_type":"people"}}
{"tag_line":"I am Bert"}
{"index":{"_index":"mammals","_type":"animals"}}
{"tag_line":"I am a dog"}
{"index":{"_index":"mammals","_type":"animals"}}
{"tag_line":"I am a cat"}

当我们查询所有文件时,我们得到5个结果:

GET /mammals/_search?size=0
{
    "query": {
        "match_all": {}
    }
}

现在我们可以删除所有“动物”类型的文件:

DELETE /mammals/animals/_query
{
    "query": {
        "match_all": {}
    }
}

这仅在安装delete-by-query插件时有效。

当我们再次搜索所有文件时,我们只得到3个结果,因为动物已经消失。

P.S:这个插件是2.x版本而不是5.x.所以在5.x中可以有其他方法来做到这一点。我相信这个删除不会影响映射,因为这只会删除单个文档。