【问题标题】:ElasticSearch - Limit size of nested collection on Query ResultElasticSearch - 限制查询结果中嵌套集合的大小
【发布时间】:2016-09-22 16:27:47
【问题描述】:

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

例如这将返回具有无限 cmets 的前 10 篇博文

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

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

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

我正在寻找的是创建一个查询,我可以执行诸如获取前 5 个 cmets 的前 10 个博客文章之类的操作。

【问题讨论】:

    标签: elasticsearch elasticsearch-query elasticsearch-nested


    【解决方案1】:

    你能试试这个查询吗:

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

    【讨论】:

    猜你喜欢
    • 2020-08-25
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    • 1970-01-01
    • 2022-01-06
    • 2015-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多