gpt4 book ai didi

node.js - Elasticsearch 更新具有匹配 id 的文档

转载 作者:太空宇宙 更新时间:2023-11-04 03:21:47 25 4
gpt4 key购买 nike

我正在尝试更新elasticsearch中与id字段匹配的文档。如果 formData.id 与 elasticsearch 中的任何文档匹配,我希望更新它的 mobile_numberprimary_email_id 。我还想在匹配结果中插入一个新字段 website 。为此,我尝试了以下查询:

function updateForm(formData) {
var deferred = Q.defer();
client.update({
index: 'collections',
type: 'automobiles',
id: '8s5WEbYZ6NUAliwOBf',
body: {
query: {
must: {
match : {
id: formData.id
}
},
},
doc: {
'mobile_number' : formData.phone,
'primary_email_id': formData.email,
'website' : formData.website
}

}
},function (error, response) {
if(error){
console.log(error);
return error;
}else {
deferred.resolve(response);
}

});
return deferred.promise;
}

这给了我以下错误:

错误:[action_request_validation_exception] 验证失败:1:脚本或文档丢失;

我的查询中已经有一个文档字段。我应该进行哪些修改才能执行此类更新?这样的操作还有其他更好的方法吗?

最佳答案

我对 JS API 不太熟悉,但我认为它应该是这样的:

function updateForm(formData) {
var deferred = Q.defer();
client.update(
{
index: 'collections',
type: 'automobiles',
id: formData.id,
body: {
doc: {
'mobile_number' : formData.phone,
'primary_email_id': formData.email,
'website' : formData.website
}
}
},
function (error, response) {
if(error) {
console.log(error);
return error;
} else {
deferred.resolve(response);
}
}
);
return deferred.promise;
}

基于:https://www.elastic.co/guide/en/elasticsearch/client/javascript-api/current/api-reference.html#api-update

关于node.js - Elasticsearch 更新具有匹配 id 的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49366126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com