我使用的是彈性搜索2.2。批量刪除elasticsearch
這裏是文檔
捲曲數 'XXXXXXXXX:9200/_cat /指數V''
yellow open app 5 1 28019178 5073 11.4gb 11.4gb
在 「應用程序」 指數,我們有兩種類型的文件。
- 「日誌」
- 「系統日誌」
現在我想刪除所有類型下的 「系統日誌」 的文件。
因此,我嘗試使用以下命令
curl -XDELETE "http://xxxxxx:9200/app/syslog"
,但我收到以下錯誤
No handler found for uri [/app/syslog]
我已經安裝了刪除,通過查詢插件也是如此。有什麼辦法可以做批量刪除操作嗎?
現在,我通過提取id來刪除記錄。
curl -XDELETE "http://xxxxxx:9200/app/syslog/A121312"
我花了大約5分鐘刪除10000條記錄。我有超過1000000個需要刪除的文檔。請幫忙。
[EDIT -1]
我跑的下面查詢刪除日誌類型文檔
curl -XDELETE 'http://xxxxxx:9200/app/syslog/_query' -d'
{
"query": {
"bool": {
"must": [
{
"match_all": {}
}
]
}
}
}'
而且結果低於
{"found":false,"_index":"app","_type":"syslog","_id":"_query","_version":1,"_shards":{"total":2,"successful":1,"failed":0}}
我用於查詢以獲得從該消息索引
{
"_index" : "app",
"_type" : "syslog",
"_id" : "AVckPMQnKYIebrQhF556",
"_score" : 1.0,
"_source" : {
"message" : "some test message",
"@version" : "1",
"@timestamp" : "2016-09-13T15:49:04.562Z",
"type" : "syslog",
"host" : "1.2.3.4",
"priority" : 0,
"severity" : 0,
"facility" : 0,
"facility_label" : "kernel",
"severity_label" : "Emergency"
}
[編輯2]
刪除被列爲插件查詢
sudo /usr/share/elasticsearch/bin/plugin list
Installed plugins in /usr/share/elasticsearch/plugins/node1:
- delete-by-query
如果文檔數量很大,你倒是應該創建新的索引和重新索引你想保持 – blackmamba