我从ES获取文档,然后尝试使用js客户端对其进行更新:
文档的结构为(部分):
{
_id =“ 2c3cb61e-fd2a-11e8-8ac1-0242ac110008”,
_index =“ my_index”,
_source:{taskName:“ Task_name”,....}
}
代码:
hit._source.taskName = 'New_task_name';
esClient.bulk({
body: [
{ update: { _index: 'my_index', _type: 'default', _id: hit._id }},
{ doc: hit}
]
}, function (err, resp) {
// ...
console.log(err, resp);
});
但是它给出错误为:
{“ type”:“ mapper_parsing_exception”,“ reason”:“字段[_index]是 元数据字段,因此无法添加到文档中。使用索引 API请求参数。“}
这是否意味着我不能在文档中使用_index作为字段名?
答案 0 :(得分:1)
到目前为止,您的工作真不错!您只需要发送_source
中的内容,就可以这样做:
hit._source.taskName = 'New_task_name';
esClient.bulk({
body: [
{ update: { _index: 'my_index', _type: 'default', _id: hit._id }},
{ doc: hit._source} <-- change here
]
}, function (err, resp) {
// ...
console.log(err, resp);
});