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()
.
我想使用 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()
.