1

如果我的博客文章包含数千(或十万)条nested评论,并且我只想检索前 10 篇博客文章。我将只使用size来控制我想要检索多少博客文章,但我不确定如何限制nested我想要多少评论的大小。

例如,这将返回前 10 篇无限制评论的博客文章

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

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

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

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

4

1 回答 1

0

你可以试试这个查询:

{
    "_source": false,
    "fields":["your_fields"],
   "size": 10,
   "query": {
      "match_all": {}
   },
   "inner_hits" : {
        "comments" : {
            "path" : { 
                "comments" : { 
                    "size":5,
                    "query" : {
                        "match_all": {}
                    }
                }
            }
        }
    }
}
于 2016-09-23T00:13:27.110 回答