如何在 Elasticsearch 中创建嵌套对象并将其添加到嵌套字段中?

2024-02-23

https://www.elastic.co/guide/en/elasticsearch/reference/current/nested.html https://www.elastic.co/guide/en/elasticsearch/reference/current/nested.html

考虑:

PUT my_index
{
  "mappings": {
    "_doc": {
      "properties": {
        "user": {
          "type": "nested" 
        }
      }
    }
  }
}

PUT my_index/_doc/1
{
  "group" : "fans",
  "user" : [
    {
      "first" : "John",
      "last" :  "Smith"
    },
    {
      "first" : "Alice",
      "last" :  "White"
    }
  ]
}

当我运行一个无痛脚本时,例如:

ctx._source.user.add({
    "first" : "Foo",
    "last" : "Bar"
})

它不起作用。我尝试过,但找不到任何相关文档或其他人发起的讨论。


https://www.elastic.co/guide/en/elasticsearch/reference/5.4/modules-scripting-painless-syntax.html#painless-maps https://www.elastic.co/guide/en/elasticsearch/reference/5.4/modules-scripting-painless-syntax.html#painless-maps

您可以创建一个地图,例如['first': 'Foo', 'last': 'Bar', 'sthElse': 100]然后添加它。

So:

ctx._source.user.add([
    "first" : "Foo",
    "last" : "Bar"
])

请注意,painless 中的地图可以是混合类型。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Elasticsearch 中创建嵌套对象并将其添加到嵌套字段中? 的相关文章

随机推荐