- 業務でElasticsearchのデータ削除の機会があったので日本語でメモ。
# queryの条件にhitするドキュメントを削除
curl -XDELETE localhost:9200/index_name/type_name/_query?pretty=true -d '{{ 削除したい条件のquery }}'
※もちろんlocalhost:9200, inedex_name, type_nameはそれぞれの環境に合わせて変更
例
# delete_ngというフィールドが存在しないドキュメントの検索
GET index_name/type_name/_search
{
"query": {
"filtered": {
"filter": {
"bool": {
"must": [
{
"missing": {
"field": "delete_ng"
}
}
]
}
}
}
}
}
これを削除したかったら、下記のcurlで削除可能。
リクエスト
curl -XDELETE localhost:9200/index_name/type_name/_query -d '{"query":{"filtered":{"filter":{"bool":{"must":[{"missing":{"field":"delete_ng"}}]}}}}}'
レスポンス
{
"_indices" : {
"index_name" : {
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
}
}
}
}