Elasticsearch - 如何删除文档列表?

时间:2017-02-26 08:23:18

标签: elasticsearch

我有一个_id数组。

this page上我发现了如何从中检索文档列表:

GET ads/_mget
{
   "ids": [ "586213440e7d2c7f10fe2574",
            "586213440e7d2c7f10fe2575",
            "586213450e7d2c7f10fe2576",
            "586213450e7d2c7f10fe2577" ]
}

这可以正常工作并返回4个完整文档的列表。

(旁注) 我觉得必须要编写" ids"在查询中,当它实际上作用于" _id"领域。 (结束旁注)

现在我无法弄清楚如何从同一个_id列表中删除这些文档。

我尝试DELETE ads/_mget,但收到错误:No handler found for uri [/ads/_mget] and method [DELETE]

我尝试_mdelete代替_mget,但它似乎不存在。

我也试过

DELETE ads
{
   "ids": [ "586213440e7d2c7f10fe2574",
            "586213440e7d2c7f10fe2575",
            "586213450e7d2c7f10fe2576",
            "586213450e7d2c7f10fe2577" ]
}

...但是这......只是删除了一切,我必须重新索引数据库。

1 个答案:

答案 0 :(得分:3)

您始终可以使用Delete By Query的功能并提供有效负载,例如:

POST ads/_delete_by_query
{
    "query" : {
        "terms" : {
            "_id" : 
              [ "586213440e7d2c7f10fe2574",
              "586213440e7d2c7f10fe2575",
              "586213450e7d2c7f10fe2576",
              "586213450e7d2c7f10fe2577" ]
        }
    }
}

有关字词查询的更多信息,请按照https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-terms-query.html

进行操作