我不小心从Logstash将一些数据加载到Elasticsearch中。
基本上,我忘了在Logstash配置中包含start_position => "beginning"
,所以如果我删除.sincedb_*
并重新运行,我将会有一小部分重复的数据。
我使用Kibana查看此数据,然后点击“检查”按钮查看已运行的查询:
curl -XGET 'http://els-server:9200/logstash-2014.02.19,logstash-2014.02.18/_search?pretty' -d '{
"facets": {
"0": {
"date_histogram": {
"field": "@timestamp",
"interval": "10m"
},
"facet_filter": {
"fquery": {
"query": {
"filtered": {
"query": {
"query_string": {
"query": "tags:\"a-tag-that-uniquely-matches-the-mistake\""
}
},
"filter": {
"bool": {
"must": [
{
"match_all": {}
},
{
"range": {
"@timestamp": {
"from": 1392723206360,
"to": "now"
}
}
},
{
"bool": {
"must": [
{
"match_all": {}
}
]
}
}
]
}
}
}
}
}
}
}
},
"size": 0
}'
如果我在ELS服务器上运行它,它会找到相同的结果集(如预期的那样):
{
"took" : 23,
"timed_out" : false,
"_shards" : {
"total" : 10,
"successful" : 10,
"failed" : 0
},
"hits" : {
"total" : 558829,
"max_score" : 0.0,
"hits" : [ ]
},
"facets" : {
"0" : {
"_type" : "date_histogram",
"entries" : [ {
"time" : 1392799200000,
"count" : 91
} ]
}
}
}
第"count" : 91
行匹配Kibana中显示的相同数量的事件。
如何将其转换为DELETE操作以删除这91个条目?
谢谢,
KB
答案 0 :(得分:3)
您可以在1.0或更高版本中通过查询删除我相信。
Click here for ES doco on that API
我使用Chrome plugin Sense手动针对ES运行查询。
示例:
DELETE /twitter/tweet/_query
{
"query" : {
"term" : { "user" : "kimchy" }
}
}
在您的情况下,您应该只使用查询的查询部分:
DELETE /twitter/_search
{
"query": {
"filtered": {
"query": {
"query_string": {
"query": "tags:\"a-tag-that-uniquely-matches-the-mistake\""
}
},
"filter": {
"bool": {
"must": [
{
"match_all": {}
},
{
"range": {
"@timestamp": {
"from": 1392723206360,
"to": "now"
}
}
},
{
"bool": {
"must": [
{
"match_all": {}
}
]
}
}
]
}
}
}
}
}