欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Elasticsearch(016):es常见的字段映射类型之对象类型(object)

程序员文章站 2022-04-23 15:46:02
...

对象类型(object)

JSON文档本质上是分层的:文档可能包含内部对象,而内部对象又可能包含内部对象本身。

例如其下这个例子。

PUT example/docs/1
{
    "region": "CN",
    "manager": {
        "age": 22,
        "name": {
            "first": "李",
            "last": "小明"
        }
    }
}

可以看出: 最外层的JSON是一个对象,而其中的manager也是对象属性,而manager中属性的name属性也是同样的。

用平面的结构可以用如下的来表示。

{
  "region":             "CN",
  "manager.age":        32,
  "manager.name.first": "李",
  "manager.name.last":  "小明"
}

这种结构的关系在创建映射时在创建es映射时该怎么表示呢。

示例如下:

#创建带有对象属性的映射关系
PUT example/docs/_mapping
{
    "properties": {
        "region": {
            "type": "keyword"
        },
        "manager": {
            "properties": {
                "age": {"type": "short"},
                "name": {
                    "properties": {
                        "first": {"type": "keyword"},
                        "last": {"type": "text"}
                    }
                }
            }
        }
    }
}

说明如下:

映射类型是对象的类型,并具有一个properties字段; 该manager字段是一个内部object字段;该manager.name字段是一个内object的内部manager域。


注意:不需要将该字段设置type为object显式,因为这是默认值。

如果需要索引对象数组而不是单个对象的索引,请使用嵌套数据类型。 嵌套类型我们后面会学习到。