ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# Object 原文链接 : [https://www.elastic.co/guide/en/elasticsearch/reference/current/object.html](https://www.elastic.co/guide/en/elasticsearch/reference/current/object.html) 译文链接 : [Object](/display/Elasticsearch/Object) 贡献者 : [彭秋源](/display/~pengqiuyuan),[ApacheCN](/display/~apachecn),[Apache中文网](/display/~apachechina) ## 对象数据类型 JSON文档本质上是分层的:文档包含内部对象,内部对象本身还包含内部对象。 ``` curl -XPUT 'localhost:9200/my_index/my_type/1?pretty' -d' { // 1 "region": "US", "manager": { // 2 "age": 30, "name": { // 3 "first": "John", "last": "Smith" } } }' ``` | 1 | 外层的文档是 JSON 对象 | | 2 | 包含称为 `manager` 的内部对象 | | 3 | `manager` 对象还包含一个内部对象称为 `name` | 在内部,这个文档被索引为一个简单的、扁平的键值对列表,如下所示: ``` { "region": "US", "manager.age": 30, "manager.name.first": "John", "manager.name.last": "Smith" } ``` 上面文档的显式映射可以长这样: ``` curl -XPUT 'localhost:9200/my_index?pretty' -d' { "mappings": { "my_type": { // 1 "properties": { "region": { "type": "keyword" }, "manager": { // 2 "properties": { "age": { "type": "integer" }, "name": { // 3 "properties": { "first": { "type": "text" }, "last": { "type": "text" } } } } } } } } }' ``` | 1 | 映射的类型是一个对象类型,具有一个 `properties` 字段 | | 2 | `manager`字段是一个内部`object`字段 | | 3 | `manager.name` 字段是`manager`字段中的一个内部`object`字段 | 不需要显式地将字段类型设置为`object`类型,因为这是默认的类型。 ## `object `字段的参数 | 参数 | 说明 | | 1 | 新属性是否应动态添加到现有对象。接受 true(默认),false 和 strict | | 2 | 是否应该对对象字段给出的JSON值进行解析和索引(true,默认)或完全忽略(false) | | 3 | 为对象中的所有属性设置默认的 `include_in_all` 值,对象本身没有添加到 _all 字段。 | | 4 | 对象内的字段,可以是任何数据类型,包括对象。可以将新属性添加到现有对象。 | 注意 如果你需要索引对象的数组而不是单个的对象,可以使用`nested`数据类型。