ElasticSearch数据类型Object介绍

2022-07-12 14:24:37 浏览数 (1)

本文主要介绍一下ES中的object类型介绍:

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

代码语言:javascript复制
curl -X PUT "localhost:9200/my-index-000001/_doc/1?pretty" -H 'Content-Type: application/json' -d'
{ 
  "region": "US",
  "manager": { 
    "age":     30,
    "name": { 
      "first": "John",
      "last":  "Smith"
    }
  }
}
'
  • 创建一个文档,也是一个JSON对象
  • 该文档内部包含一个对象叫manager对象
  • manager对象内部存在一个name的对象

在内部,此文档被索引为键-值对的简单平面列表,如下所示:

代码语言:javascript复制
{
  "region":             "US",
  "manager.age":        30,
  "manager.name.first": "John",
  "manager.name.last":  "Smith"
}

下面的结构和上面的是等价的:

代码语言:javascript复制
curl -X PUT "localhost:9200/my-index-000001?pretty" -H 'Content-Type: application/json' -d'
{
  "mappings": {
    "properties": { 
      "region": {
        "type": "keyword"
      },
      "manager": { 
        "properties": {
          "age":  { "type": "integer" },
          "name": { 
            "properties": {
              "first": { "type": "text" },
              "last":  { "type": "text" }
            }
          }
        }
      }
    }
  }
}
'

Object Field的参数

  • dynamic
    • 是否应将新属性动态添加到现有对象
    • 接受true(默认),false和strict
  • enabled
    • 为对象字段提供的JSON值应该被解析和索引(是true,默认值)还是应该被完全忽略(false)
  • properties
    • 对象中的字段,可以是任何数据类型,包括对象。可以将新属性添加到现有对象

0 人点赞