nest:如何使用 UpdateByQuery()?

nest : how use UpdateByQuery()?

我想使用 UpdateByQuery() 方法

如果我理解得很好,我需要给出一个查询和一个select。

例如,我想在我的项目 class

中将名称 属性 更改为 "welcome"

我开始写我的方法,但我不知道之后该做什么?

 client.UpdateByQuery<proj>(q => q.Query(rq => rq.Term(f => f.idProjet, projetEntity.IdProjet)));

我在智能感知助手中没有看到更新流畅的方法

你能帮帮我吗?

您需要使用Script方法。这个例子应该有效:

var scriptParams = new Dictionary<string, object> {{"newName", "welcome"}};

client.UpdateByQuery<proj>(q => q
    .Query(rq => rq.Term(f => f.idProjet, projetEntity.IdProjet))
    .Script(script => script
        .Inline("ctx._source.name = newName;")
        .Params(scriptParams)));

对于运行这个例子你必须在elasticsearch.yml中设置script.inline: true。为避免这种情况,您必须使用 File() 方法而不是 Inline().