需求
- 需要删除特定索引
- 不想修改代碼,重新開機應用服務,就需要直接在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"
}
}
}'