通过查询删除elasticsearch记录
Delete elasticsearch records by query
我有一个代码可以找到我需要的记录:
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 更改为 query 并得到:
{"_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"
}
删除这些记录的正确查询是什么?
是的,您可以使用 delete by query 来删除与您的查询相匹配的文档,但您需要使用 _query
而不是使用 _search
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"}
}
}
}'
我有一个代码可以找到我需要的记录:
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 更改为 query 并得到:
{"_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"
}
删除这些记录的正确查询是什么?
是的,您可以使用 delete by query 来删除与您的查询相匹配的文档,但您需要使用 _query
而不是使用 _searchcurl -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"}
}
}
}'