我想使用UpdateByQuery()方法
如果我理解得很好,我需要提供一个查询和一个选择。
例如我想将name属性更改为" welcome"在我的专业课程中
我开始写我的方法,但我不知道该怎么做?
client.UpdateByQuery<proj>(q => q.Query(rq => rq.Term(f => f.idProjet, projetEntity.IdProjet)));
我没有在intellisense助手中看到更新流利的方法
你能帮我吗?
答案 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()
。