ElasticSearch5.x 删除数据

以下测试在elasticsearch5.6.10版本。

首先要说明的是ElasticSearch从2.x开始就已经不支持删除一个type了,所以使用delete命令想要尝试删除一个type的时候会出现如下错误:

No handler found for uri [/dating_profile/zhenai/] and method [DELETE]

测试:

假如存在一个名为dating_profile的index和zhenai的type:

curl -XDELETE http://192.168.1.102:9200/dating_profile/zhenai

执行后报错如下:

所以现在如果想要删除type有两种选择:

1、重新设置index。

2、删除type下的所有数据。

如果重新设置index,官方建议:

https://www.elastic.co/guide/en/elasticsearch/reference/5.4/indices-delete-mapping.html

Delete Mapping

It is no longer possible to delete the mapping for a type. Instead you should delete the index and recreate it with the new mappings.

删除index:

如下,删除名为dating_profile的index:

curl -XDELETE http://192.168.1.102:9200/dating_profile/

删除成功,返回值为:

{
  "acknowledged": true
}

删除type下的所有数据

想要一次性删除type为zhenai所有数据内容的话,可以参考官方文档:

https://www.elastic.co/guide/en/elasticsearch/reference/5.4/docs-delete-by-query.html

其中有讲到,可以通过_delete_by_query限制到一个单独的type,如下,它仅仅会删除index为dating_profile下type为zhenai下的所有数据:

curl -X POST "http://192.168.1.102:9200/dating_profile/zhenai/_delete_by_query?conflicts=proceed" -H 'Content-Type: application/json' -d'
{
  "query": {
    "match_all": {}
  }
}'

删除成功,返回值如下:

{
  "took": 78,
  "timed_out": false,
  "total": 107,
  "deleted": 107,
  "batches": 1,
  "version_conflicts": 0,
  "noops": 0,
  "retries": {
    "bulk": 0,
    "search": 0
  },
  "throttled_millis": 0,
  "requests_per_second": -1.0,
  "throttled_until_millis": 0,
  "failures": []
}

也可以一次性删除多个index和多个type下的文档,如下:删除index为dating_profile下的type为zhenai的数据;同时删除index为movies下的type为movie的数据。

curl -X POST "http://192.168.1.102:9200/dating_profile,movies/zhenai,movie/_delete_by_query" -H 'Content-Type: application/json' -d'
{
 "query": {
   "match_all": {}
 }
}
'

返回值如下:

{
  "took": 93,
  "timed_out": false,
  "total": 61,
  "deleted": 61,
  "batches": 1,
  "version_conflicts": 0,
  "noops": 0,
  "retries": {
    "bulk": 0,
    "search": 0
  },
  "throttled_millis": 0,
  "requests_per_second": -1.0,
  "throttled_until_millis": 0,
  "failures": []
}

题外话:

5.xES提供的Reindex可以直接在搜索集群中对数据进行重建。如下可以直接修改mapping。

如下将index为dating_profile改为new_dating_profile

curl -XPOST "http://192.168.1.102:9200/_reindex?pretty" -H 'Content-Type: application/json' -d'
{
 "source": {
   "index": "dating_profile"
 },
 "dest": {
   "index": "new_dating_profile"
 }
}
'

这样执行后,旧的index还是存在的,dating_profile和new_dating_profile都可以查到旧数据。

原文发布于微信公众号 - 我的小碗汤(mysmallsoup)

原文发表时间:2018-08-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏一个会写诗的程序员的博客

物理内存与虚拟内存

物理内存就是你的机器本身内存了(如内存条的大小)。物理内存就是CPU的地址线可以直接进行寻址的内存空间大小。比如8086只有20根地址线,那么它的寻址空间就是1...

20920
来自专栏FreeBuf

爬虫代理搭建与批量安装

代理对于搞爬虫的都不会陌生。公司有一批阿里云服务器用于分布式增量抓取,但对于一些封ip且只需进行一次全量抓取的数据源,或数据量级较小时,如果部署到爬虫集群上又太...

54550
来自专栏应用案例

Hexo博客的安装部署及多电脑同步

Hexo安装教程很多,我这里尽可能的讲的细一些,把容易踩坑的地方以及后期多电脑同步所遇到的问题列出来,以便给自己及大家参考。本文主要讲解安装部署后源文件同步问题...

1.4K70
来自专栏北京马哥教育

Python之包管理工具快速入门

学Python最简单的方法是什么?推荐阅读:30万年薪Python开发工程师成长魔法 在Python环境中已经有很多成熟的包,可以通过安装这些包来扩展我们的程序...

29650
来自专栏微服务

微服务实践分享与探讨

服务调用关系 ? API网关优缺点 简化沟通方式 API网关对所有微服务提供单一的访问点 安全性 对客户端隐藏了服务发现和服务版本 阻止大规模攻击,包括S...

35670
来自专栏黑白安全

8种DOS命令

  它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:...

23620
来自专栏枕边书

Linux - 请允许我静静地后台运行

前言 常在 linux 下玩耍的开发者肯定会经常遇到需要对进程调度的情况,在 windows 中点击 最小化 去干别的就 OK 了,那么在 linux 下怎么办...

26150
来自专栏小二的折腾日记

服务器-Nginx基础配置

Nginx的默认配置文件为:nginx.conf,文件一共由三个部分组成,分别为:全局块、events块、http块在http块中,包含http全局块,多个se...

19040
来自专栏魏琼东

基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET平台开发指南 - 应用部署

集成与测试           AgileEAS.NET采用的是平台加插件的开发方式,也就是说,开发好插件需要集到AgileEAS.NET平台并进行集成测试,这...

21580
来自专栏cmazxiaoma的架构师之路

FastDFS蛋疼的集群和负载均衡(六)之Nginx高可用集群

17530

扫码关注云+社区

领取腾讯云代金券