我如何使用带有 NEST for Elastic 的自定义类型字段批量删除文档?

How could I bulk delete docs using a custom type field with NEST for Elastic?

我将如何继续使用 BulkDeleteDescriptor 删除符合使用 Elastic 的 NEST 的特定条件的文档?

具体来说,我有一个自定义类型字段,我想删除所有具有特定类型和任何其他条件(例如 ID)的文档,文档将如下所示:

{
  "_index": "testIndex",
  "_id": "someId",
  "_score": 1.0,
  "_source": {
    "bookName": "A Book",
    "type": "action"
  }
}

当 Elastic/NEST 有类型时,我会这样做:

descriptor.Delete<object>(i => i
    .Index("testIndex") 
    .Type(type)
    .Id(id));

似乎在 NEST 文档上找不到太多内容..

批量删除是删除一堆文档的好方法,前提是您预先拥有这些文档的 ID。对于不知道 ID 的情况,我建议 delete by query API 将删除符合查询条件的文档。

有了这个API,您将能够同时指定两个删除条件(id 和类型)

POST your_index/_delete_by_query
{
  "query": {
    "bool": {
        "must": [
        {
            "term": {
                "_id": x
            }
        },
        {
            "term": {
                "type": y
            }
        }]
    }
  }
}