ElasticSearch中存入JSON对象和对象数组

存入JSON对象

在现实中我们常常会遇到各种复杂对象,比如:

{ 
  "region": "ZH-CN",
  "manager": { 
    "age":     30,
    "name": { 
      "first": "John",
      "last":  "Smith"
    }
  }
}

实际上,我们在ES内部是用K-V的形式存储的,所以在内部其实是这样存储的:
实际上这有点像properties的格式。

{
  "region":             "US",
  "manager.age":        30,
  "manager.name.first": "John",
  "manager.name.last":  "Smith"
}

在Mapping的内部是这样存储的:

{
  "mappings": {
    "my_type": { 
      "properties": {
        "region": {
          "type": "keyword"
        },
        "manager": { 
          "properties": {
            "age":  { "type": "integer" },
            "name": { 
              "properties": {
                "first": { "type": "text" },
                "last":  { "type": "text" }
              }
            }
          }
        }
      }
    }
  }
}

存入JSON对象数组

假如有以下JSON对象

{
  "group" : "fans",
  "user" : [ 
    {
      "first" : "John",
      "last" :  "Smith"
    },
    {
      "first" : "Alice",
      "last" :  "White"
    }
  ]
}

this is a typical json object array
在ES中这个JSON对象数组将会被解析成如下:

{
  "group" :        "fans",
  "user.first" : [ "alice", "john" ],
  "user.last" :  [ "smith", "white" ]
}

你可能感兴趣的:(ElasticSearch)