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

时间:2016-09-22 16:27:47

标签: elasticsearch elasticsearch-query elasticsearch-nested

如果我的博客文章包含数千(或数十万)nested条评论,而我想查找前10个博客文章。我将使用size来控制我想要检索的博客帖子数量,但我不确定如何限制我想要的nested条评论的大小。

e.g。这将返回前10篇博客文章,其中包含无限评论

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

我尝试inner_hits但它对我不起作用。当我使用时,我必须在嵌套注释中进行查询,我也禁用了源代码(以避免检索带有所有注释的帖子),而inner_hits结果将为每个帖子(冗余)提供每条评论,即使在某些帖子中也是如此情况它是同一个父帖。 我还考虑了parent-child方法,但这意味着创建了多个请求/查询。

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

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

1 个答案:

答案 0 :(得分:0)

您可以尝试此查询:

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