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": {}
}
}
}
}
}
}
如果我的博客-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": {}
}
}
}
}
}
}