ElasticSearch - 限制查询结果中嵌套集合的大小

ElasticSearch - Limit size of nested collection on Query Result

如果我的博客-post 有数千条(或十万条)nested 条评论,而我只想检索前 10 条博客-post。我将只使用 size 来控制我想要检索的博客-post 的数量,但我不确定如何限制我想要的 nested 评论的大小。

例如这将 return 排名前 10 的博客-post 具有无限评论

GET myblog/_search
{
   "size": 10,
   "query": {
      "match_all": {}
   }
}

我尝试 inner_hits 但它对我不起作用。当我使用时,我必须在嵌套评论中进行查询,我还禁用了源(以避免检索 post 和所有评论),inner_hits 结果将给我每个评论post(冗余)即使在某些情况下它是同一个父级 -post。 我也考虑过 parent-child 方法,但这意味着创建多个 request/queries。

您知道如何在查询中限制嵌套集合的大小吗?

我正在寻找的是创建一个查询,我可以做一些事情,比如获得前 10 名博客-posts 和前 5 条评论。

你能试试这个查询吗:

{
    "_source": false,
    "fields":["your_fields"],
   "size": 10,
   "query": {
      "match_all": {}
   },
   "inner_hits" : {
        "comments" : {
            "path" : { 
                "comments" : { 
                    "size":5,
                    "query" : {
                        "match_all": {}
                    }
                }
            }
        }
    }
}