微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

elasticsearch nested 对象

创建测试数据

DELETE student
# 创建 nested 对象 Mapping
PUT student
{
      "mappings" : {
      "properties" : {
        "name" : {
          "type": "nested",
          "properties" : {
            "first_name" : {"type" : "keyword"},
            "last_name" : {"type" : "keyword"}
          }},
        "commet" : {
          "type" : "text",
          "fields" : {"keyword":{"type":"keyword","ignore_above":256}}
        }
      }
    }
}
POST student/_doc/1
{
  "commet":"good",
  "name":[
    {
      "first_name":"wang ",
      "last_name":"er"
    },

    {
      "first_name":"zhang",
      "last_name":"san"
    }

  ]
}

 nested 查询 ,hit 为0 ,表示正确

POST student/_search
{
  "query": {
    "bool": {
      "must": [
        {"match": {"commet": "good"}},
        {
          "nested": {
            "path": "name",
            "query": {
              "bool": {
                "must": [
                  {"match": {
                    "name.first_name": "wang"
                  }},
 
                  {"match": {
                    "name.last_name": "san"
                  }}
                ]
              }
            }
          }
        }
      ]
    }
  }
}  
# nested Aggregation

POST student/_search
{
  "size": 0,
  "aggs": {
    "actors": {
      "nested": {
        "path": "name"
      },
      "aggs": {
        "full_name": {
          "terms": {
            "field": "name.first_name",
            "size": 10
          }
        }
      }
    }
  }
}

  

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐