我如何使用带有 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
}
}]
}
}
}
我将如何继续使用 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
}
}]
}
}
}