Elasticsearch-如何删除文档列表?

Jer*_*lle 2 elasticsearch

我有一个_id数组。

此页面上,我了解了如何从中检索文档列表:

GET ads/_mget
{
   "ids": [ "586213440e7d2c7f10fe2574",
            "586213440e7d2c7f10fe2575",
            "586213450e7d2c7f10fe2576",
            "586213450e7d2c7f10fe2577" ]
}
Run Code Online (Sandbox Code Playgroud)

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

(旁注)我发现在查询实际作用于“ _id”字段时不得不在查询中写入“ ids”很奇怪。(尾注)

现在,我不知道如何从相同的_id列表中删除这些文档。

我尝试过,DELETE ads/_mget但是出现错误:No handler found for uri [/ads/_mget] and method [DELETE]

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

我也试过

DELETE ads
{
   "ids": [ "586213440e7d2c7f10fe2574",
            "586213440e7d2c7f10fe2575",
            "586213450e7d2c7f10fe2576",
            "586213450e7d2c7f10fe2577" ]
}
Run Code Online (Sandbox Code Playgroud)

...但是这...只是删除所有内容,我必须重新索引数据库。

小智 5

您始终可以使用“ 按查询删除”功能并提供有效负载,例如:

POST ads/_delete_by_query
{
    "query" : {
        "terms" : {
            "_id" : 
              [ "586213440e7d2c7f10fe2574",
              "586213440e7d2c7f10fe2575",
              "586213450e7d2c7f10fe2576",
              "586213450e7d2c7f10fe2577" ]
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

有关术语查询的更多信息,请遵循https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-terms-query.html