elasticsearch - 通过查询删除Elasticsearch记录

标签 elasticsearch

我有一个代码可以找到所需的记录:

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/

相关文章:

elasticsearch - ElasticSearch more_like_this结果集受限制

elasticsearch - ElasticSearch NEST手动映射分析仪所需的子字段

elasticsearch - 在 C#.Net 的 DataTable 中获取 Elasticsearch 响应

elasticsearch - 在 Kibana 中使用唯一计数和创建聚合时缺少数据

c# - 如何使用NEST准确表示此ElasticSearch查询?

regex - 如何在Elasticsearch中搜索具有冒号(:)值的字段

elasticsearch - 来自文档列表的关键字存储桶中的文档计数作为Elasticsearch中的聚合

elasticsearch - 子聚合或基数聚合中的桶选择器

python - 收集两列数据

elasticsearch - 在 elasticsearch 上通过类似 UUID 格式的字段查询