nest:如何使用UpdateByQuery()?

时间:2017-02-13 18:25:22

标签: elasticsearch nest

我想使用UpdateByQuery()方法

如果我理解得很好,我需要提供一个查询和一个选择。

例如我想将name属性更改为" welcome"在我的专业课程中

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

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

我没有在intellisense助手中看到更新流利的方法

你能帮我吗?

1 个答案:

答案 0 :(得分:3)

您需要使用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()