天天看點

根據查詢條件,删除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"
    }
  }
}'
           

繼續閱讀