如何更新弹性搜索的嵌套数据?

时间:2016-05-02 13:35:24

标签: laravel amazon-web-services search elasticsearch

我是弹性搜索新手。我已成功设置弹性搜索服务器并在laravel中实现了ES包。现在我可以添加数据到弹性搜索,但问题是如何更新行中的嵌套项值?我在这里添加了我的数据结构的屏幕截图a link

a busy cat

现在我如何用我想要的内容更新comment_id 1?

1 个答案:

答案 0 :(得分:0)

在你的情况下,它会有点问题。 您应该了解elasticsearch index arrays的方式。

所以在你的情况下你会得到这样的东西:

{
  .
  . 
  "comments":{
     "id": [1,2,3],
     "comment": ["this is comment1", "this is comment2", "this is comment3"]
  }
}

所以你失去了" id"之间的相关性。和"评论"。 如果你想保持这种相关性,你需要定义"评论" as"嵌套"在你的映射中。看here

为了更新嵌套文档,您需要使用scripted update

如果您需要更新数组中的特定注释,您可以编写一个找到它并替换它的脚本,或者您可以读取整个数组,编辑它并覆盖当前数组。