我有一个代码可以找到我需要的记录:
curl -XGET "http://localhost:9200/one/two/_search" -d '
{
"query" : {
"range" : {
"timestamp" : { "gte" : "2014-09-01T00:00:00.000Z", "lt" : "2014-09-01T00:00:00.000Z||+1M"}
}
}
}'
现在我想将其转换为删除这些记录的代码。
根据this doc我尝试将 _search 更改为查询并获得:
{"_index":"one","_type":"two","_id":"_query","found":false}
我尝试将 XGET 更改为 XDELETE :
{"found":false,"_index":"one","_type":"two","_id":"_search","_version":1}
Elasticsearch版本:
"version" : {
"number" : "1.0.3",
"build_hash" : "61bfb72d845a59a58cd9910e47515665f6478a5c",
"build_timestamp" : "2014-04-16T14:43:11Z",
"build_snapshot" : false,
"lucene_version" : "4.6"
}
删除这些记录的正确查询是什么?
答案 0 :(得分:2)
是的,您可以使用按查询删除来删除与您的查询匹配的文档,但不是使用_search而是需要说_query
curl -XDELETE "http://localhost:9200/one/two/_query" -d '
{
"query" : {
"range" : {
"timestamp" : { "gte" : "2014-09-01T00:00:00.000Z", "lt" : "2014-09-01T00:00:00.000Z||+1M"}
}
}
}'