天天看点

根据查询条件,删除Elasticsearch索引_delete_by_query

需求

  • 需要删除特定索引
  • 不想修改代码,重启应用服务,就需要直接在elasticsearch服务里删除

解决

  • elasticsearch是有提供根据查询删除方法的
  • 先查询,确定有多少结果,避免误删除
  • 查询单条记录
curl http://192.168.40.3:9200/huangshan_ex9_4/6796612/8885822
           
  • 条件查询,match_phrase表示精确匹配
curl -X POST "http://192.168.40.3:9200/huangshan_ex9_4/6796612/_search" -H 'Content-Type: application/json' -d'
{
    "query": {
        "match_phrase": {
            "url": "113.mas.gov.cn"
        }
    }
}'

           
  • 查询并删除

注意:

1,如果是在kibana执行,请注意大小写。如果是小写,命令左侧有红色的×,说明小写时下面的json条件未生效

2,删除时,尽量确定 index 和 type,确认查询条件,防止误删除大量数据。如果误删除,就需要重建索引了

curl -X POST "http://192.168.40.3:9200/huangshan_ex9_4/6796612/_delete_by_query" -H 'Content-Type: application/json' -d'
{
  "query":{
    "match_phrase":{
      "url": "113.mas.gov.cn"
    }
  }
}'
           

继续阅读