【问题标题】:Elasticsearch type data deletionElasticsearch类型数据删除
【发布时间】:2017-06-03 07:52:56
【问题描述】:

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

使用弹性搜索 2.2

【问题讨论】:

标签: elasticsearch


【解决方案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 中可以有其他方法来做到这一点。我相信这种删除不会影响映射,因为这只会删除单个文档。

【讨论】:

  • 谢谢拉金德!那么,如果不在 elasticsearch-2.2 中安装 delete-by-query 插件,我就无法删除特定类型的所有文档?
  • @shan 据我所知,没有别的办法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-21
  • 2013-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-22
相关资源
最近更新 更多