显示ElasticSearch查询中嵌套对象的数量

问题描述 投票:0回答:1

我想获得符合我的搜索条件的所有文档,并根据特定字段中嵌套对象的数量对它们进行排序。我也想显示计数。我有前者工作,但很难搞清楚如何做后者。

这是我的查询:

GET _search
{
  "_source": "nested_objects",
  "query": {
    "bool": {
      "must": [
        {"nested" : {
            "path" : "nested_objects",
            "query" : {
                "bool" : {
                    "should" :[
                      {"term" : {"nested_objects.is_active": true}}
                    ]
                }
            },
            "score_mode": "sum"
        }}
      ]
    }
  }
}

这显示结果为:

"_source": {
  "nested_objects": [
    {
      "is_active": true
    },
    ...
  ]
}

但是,我需要输出如下:

"_source": {
  "size": 4,
  "nested_objects": [
    {
      "is_active": true
    },
    {
      "is_active": true
    }, 
    {
      "is_active": true
    },
    {
      "is_active": true
    } 
   ]
 }

知道如何在查询中显示大小吗?

提前致谢。

elasticsearch select count nested size
1个回答
0
投票

看起来我需要的是在我的嵌套查询下添加"inner_hits": {}

GET _search
{
  "_source": "innert_hits",
  "query": {
    "bool": {
      "must": [
        {"nested" : {
            "path" : "nested_objects",
            "query" : {
                "bool" : {
                    "should" :[
                      {"term" : {"nested_objects.is_active": true}}
                    ]
                }
            },
            "inner_hits": {},
            "score_mode": "sum"
        }}
      ]
    }
  }
}

它不会像我在上面的要求中那样返回结果,但它对我的用例来说已经足够了。

© www.soinside.com 2019 - 2024. All rights reserved.