首页 > 解决方案 > 如何按嵌套文档计数过滤文档

问题描述

我有以下弹性搜索架构,其中leaves是一个nested字段:

{
studentId:123,
studentName:'abc',
leaves:[
 {
  type:'casual',
  date:'2012-12-12'
 },
 {
  type:'sick',
  date:'2012-10-08'
 }
]
}

我想过滤/查询至少有 2 个假期类型为“休闲”的学生。只需过滤文档,无需聚合。已经看到下面的问题是旧的并且使用了已弃用的“过滤”查询。 嵌套文档中按文档计数的弹性搜索过滤器

我的 Elasticsearch 版本是 7.5

标签: elasticsearchnested

解决方案


这是参考文档

GET /index/_search
{
        "query": {
            "bool": {
                "must": {
                    "script": {
                        "script": {
                            "inline": "doc['leaves'].values.length > 1 "

                        }
                    }
                }
            }
        }
    }

推荐阅读