【问题标题】:Delete data from elasticsearch从弹性搜索中删除数据
【发布时间】:2016-07-06 00:05:26
【问题描述】:

我正在尝试从 Elasticsearch 中删除特定类型的数据。我正在使用 Chrome 中的 Sense 插件来执行我的删除命令。当我执行删除索引的命令时,它适用于 id,但不适用于类型。在我使用的意义上:

  • DELETE /index
    • 它删除了该索引的所有数据。
  • DELETE /index/type/id
    • 它会删除该 ID 的数据。
  • DELETE /index/type
    • 给出没有处理程序的错误。

我还通过 Cygwin 尝试了 curl 命令来执行相同的任务,但它不起作用,但它给了我一条关于未知 curl 的消息。请帮助我知道如何删除特定类型的数据。

【问题讨论】:

  • Richa 提供了正确的解决方案。附带说明一下,Cygwin 默认不安装curl,因此您需要先安装它才能工作。 DELETE /index/type 惊呼“没有处理程序”的原因是因为从 ES 2.0 开始,删除 API 只需要 {index}/{type}/{id} {index}

标签: elasticsearch


【解决方案1】:

您似乎使用的是 Elasticsearch 2.x 版。 在 ES 2.x 中,不允许删除特定类型。见this

您可以使用delete by query plugin 删除特定类型。

安装delete-by-query插件使用

sudo bin/plugin install delete-by-query

然后运行

DELETE /index/type/_query

这将删除该特定类型的文档。

【讨论】:

  • 您可以使用删除查询插件来有效地删除特定类型。请注意,它的映射将在操作后继续存在。
  • 您应该在答案中显示示例,以防链接中断。 (我没有投反对票,因为这些链接应该会存在一段时间,但是由于 current 的存在,破坏性更改链接最终肯定会中断)
  • @pickypg.Thnx 供您发表评论。答案是通过查询插件删除,我在我的答案中添加了它。那么还应该在其中添加什么?请解释..
  • 从字面上展示如何安装它以及如何使用它的示例:bin/plugin install delete-by-queryDELETE /index/type/_query
  • @pickypg:谢谢你告诉我改进。编辑了我的答案
猜你喜欢
  • 2016-03-14
  • 1970-01-01
  • 2015-12-13
  • 2017-09-25
  • 2015-05-23
  • 1970-01-01
  • 2014-04-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多