乐趣区

Elasticsearch-参考指南映射参数properties

映射参数 properties

类型映射、object字段和 nested 字段包含子字段,称为 properties,这些属性可以是任何数据类型,包括objectnested,可以添加属性:

  • 在创建索引时显式地定义它们。
  • 在使用PUT mapping API 添加或更新映射类型时显式地定义它们。
  • 仅通过索引包含新字段的文档就可以动态地映射属性。

下面是一个向映射类型、object字段和 nested 字段添加 properties 的示例:

PUT my_index
{
  "mappings": {
    "properties": { 
      "manager": {
        "properties": {"age":  { "type": "integer"},
          "name": {"type": "text"}
        }
      },
      "employees": {
        "type": "nested",
        "properties": {"age":  { "type": "integer"},
          "name": {"type": "text"}
        }
      }
    }
  }
}

PUT my_index/_doc/1 
{
  "region": "US",
  "manager": {
    "name": "Alice White",
    "age": 30
  },
  "employees": [
    {
      "name": "John Smith",
      "age": 34
    },
    {
      "name": "Peter Brown",
      "age": 26
    }
  ]
}
  • 顶级映射定义中的属性。
  • manager对象字段下的属性。
  • employees嵌套字段下的属性。
  • 对应于上述映射的示例文档。

properties设置允许在同一索引中为同名字段设置不同的设置,可以使用PUT mapping API 将新属性添加到现有字段。

点符号

内部字段可以在查询、聚合等中引用,使用点符号:

GET my_index/_search
{
  "query": {
    "match": {"manager.name": "Alice White"}
  },
  "aggs": {
    "Employees": {
      "nested": {"path": "employees"},
      "aggs": {
        "Employee Ages": {
          "histogram": {
            "field": "employees.age",
            "interval": 5
          }
        }
      }
    }
  }
}

必须指定到内部字段的完整路径。


退出移动版