elasticsearch 如何在Nest中进行批量部分更新而不首先获取项目?,elasticsearch,nest,elasticsearch,Nest" /> elasticsearch 如何在Nest中进行批量部分更新而不首先获取项目?,elasticsearch,nest,elasticsearch,Nest" />

elasticsearch 如何在Nest中进行批量部分更新而不首先获取项目?

elasticsearch 如何在Nest中进行批量部分更新而不首先获取项目?,elasticsearch,nest,elasticsearch,Nest,我想在Elasticsearch中使用Nest对批量操作中的一个字段进行部分更新 这是我的密码 公共异步任务批量更新(列表请求),其中TOrig:class,其中TUpdate:class { ConnectionSettings设置=新连接设置(新Uri(Url)) .DefaultIndex(IndexName); ElasticClient=新的ElasticClient(设置); BulkResponse response=等待客户端。BulkAsync(b=> b、 UpdateMan

我想在Elasticsearch中使用Nest对批量操作中的一个字段进行部分更新

这是我的密码

公共异步任务批量更新(列表请求),其中TOrig:class,其中TUpdate:class
{
ConnectionSettings设置=新连接设置(新Uri(Url))
.DefaultIndex(IndexName);
ElasticClient=新的ElasticClient(设置);
BulkResponse response=等待客户端。BulkAsync(b=>
b、 UpdateMany(请求,(业务单元,文档)=>
bu.Doc(Doc));
}
那么我想这样称呼它:

foreach(在recyclingItems中获取RecycleBinResult recyclingItem)
{
bulkRequest.Add(新的MarkFileDeletedRequest{Id=recyclingItem.Id,Deleted=true});
}
等待索引器。批量更新(批量请求);
这是我想做的,但它不允许我做,因为它希望
请求
文档
属于
托里
类型,而我希望它们是部分(
TUpdate
)。我看到的示例显示,首先从Elasticsearch获取结果,然后在我有
request
的地方传递这些结果,但这是非常低效的,不利于首先进行批量请求

更新

我可以使用
BulkDescriptor
类来执行此操作:

ConnectionSettings设置=新连接设置(新Uri(Url))
.DefaultIndex(IndexName);
ElasticClient=新的ElasticClient(设置);
BulkDescriptor描述符=新的BulkDescriptor();
foreach(请求中的KeyValuePair项)
{
descriptor.Update(a=>a.Id(item.Key).Doc(item.Value));
}
BulkResponse=await client.BulkAsync(描述符);

但是为什么它不能与fluent API一起工作呢?

将批量定义从
b.UpdateMany
更改为
b.UpdateMany
,并将完成您所需的操作。