【发布时间】:2019-08-11 02:46:29
【问题描述】:
我正在使用弹性搜索 2.2。
这是文档的数量
curl '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]
我也安装了 delete-by-query 插件。有什么办法可以进行批量删除操作吗?
现在,我正在通过获取 id 来删除记录。
curl -XDELETE "http://xxxxxx:9200/app/syslog/A121312"
删除 10000 条记录大约需要 5 分钟。我有超过 1000000 个文档需要删除。请帮忙。
[编辑 -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
【问题讨论】:
-
如果文档数量很大,您应该创建一个新索引并重新索引您想要保留的文档
标签: elasticsearch