我有一个代码可以找到所需的记录:
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"
}
什么是删除这些记录的正确查询?
最佳答案
是的,您可以使用“按查询删除”来删除符合您查询条件的文档,但是您无需使用_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"}
}
}
}'
关于elasticsearch - 通过查询删除Elasticsearch记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28602719/