我正在使用弹性搜索2.2。
这是文件数
卷曲'xxxxxxxxx:9200 / _cat / indices?v'
yellow open app 5 1 28019178 5073 11.4gb 11.4gb
在“app”索引中,我们有两种类型的文档。
现在我要删除“syslog”类型下的所有文档。
因此,我尝试使用以下命令
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个文档需要删除。请帮忙。
[编辑-1]
我运行以下查询删除syslog类型docs
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
答案 0 :(得分:1)
在过去几天里,elasticsearch用7700万份不需要的文档填充后,我遇到了类似的问题。在查询中设置超时时间是您的朋友。如here所述。卷曲也具有增加的参数(-m 3600)
curl --request DELETE \
--url 'http://127.0.0.1:9200/nadhled/tree/_query?timeout=60m' \
--header 'content-type: application/json' \
-m 3600 \
--data '{"query":{
"filtered":{
"filter":{
"range":{
"timestamp":{
"lt":1564826247
},
"timestamp":{
"gt":1564527660
}
}
}
}
}
}'
我知道这不是您的批量删除,但是我在研究过程中找到了此页面,因此将其发布在这里。希望它对您也有帮助。
答案 1 :(得分:0)
我建议您应该创建一个新索引并重新索引要保留的文档
但是如果你想通过查询使用delete,你应该使用它,
curl -XDELETE 'http://xxxxxx:9200/app/syslog/_query'
{
"query": {
"bool": {
"must": [
{
"match_all": {}
}
]
}
}
}
然后你会留下映射。
答案 2 :(得分:0)
在最新的Elasticsearch(5.2)中,您可以使用 _delete_by_query
curl -XPOST "http://localhost:9200/index/type/_delete_by_query" -d'
{
"query":{
"match_all":{}
}
}'
按查询删除API是新的,仍应予以考虑 实验。 API可能会以不倒退的方式发生变化 兼容
https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete-by-query.html