使用javascript客户端在弹性搜索中更新文档时mapper_parsing_exception

时间:2019-01-24 09:17:00

标签: elasticsearch

我从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作为字段名?

1 个答案:

答案 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);
});