.NET 使用 Nest 更新 Elasticsearch 中特定类型文档的字段值
假设您正在使用 Elasticsearch 的 .NET 客户端库 Nest,并且希望更新 type 为 1 的 sku 文档的 name 属性值为字符串变量 'a',可以使用以下代码:
var response = client.UpdateByQuery<Sku>(u => u
.Query(q => q
.Bool(b => b
.Filter(f => f
.Term(t => t
.Field(f => f.Type)
.Value(1)
)
)
)
)
.Script(s => s
.Source('ctx._source.name = params.name')
.Params(p => p
.Add('name', 'a')
)
)
);
其中:
Sku是一个表示 sku 文档的实体类。client是 Elasticsearch 的 .NET 客户端实例。
这段代码使用 UpdateByQuery 方法执行更新操作。它首先指定查询条件 type=1 来定位需要更新的文档。然后,它使用内联脚本将 name 属性设置为变量 'a' 的值。
注意: 在 Elasticsearch 7.x 及更高版本中,_type 已弃用。建议使用单个索引来存储不同类型的文档,并使用字段来区分它们。
原文地址: https://www.cveoy.top/t/topic/fVQj 著作权归作者所有。请勿转载和采集!