我想获得符合我的搜索条件的所有文档,并根据特定字段中嵌套对象的数量对它们进行排序。我也想显示计数。我有前者工作,但很难搞清楚如何做后者。
这是我的查询:
GET _search
{
"_source": "nested_objects",
"query": {
"bool": {
"must": [
{"nested" : {
"path" : "nested_objects",
"query" : {
"bool" : {
"should" :[
{"term" : {"nested_objects.is_active": true}}
]
}
},
"score_mode": "sum"
}}
]
}
}
}
这显示结果为:
"_source": {
"nested_objects": [
{
"is_active": true
},
...
]
}
但是,我需要输出如下:
"_source": {
"size": 4,
"nested_objects": [
{
"is_active": true
},
{
"is_active": true
},
{
"is_active": true
},
{
"is_active": true
}
]
}
知道如何在查询中显示大小吗?
提前致谢。
看起来我需要的是在我的嵌套查询下添加"inner_hits": {}
:
GET _search
{
"_source": "innert_hits",
"query": {
"bool": {
"must": [
{"nested" : {
"path" : "nested_objects",
"query" : {
"bool" : {
"should" :[
{"term" : {"nested_objects.is_active": true}}
]
}
},
"inner_hits": {},
"score_mode": "sum"
}}
]
}
}
}
它不会像我在上面的要求中那样返回结果,但它对我的用例来说已经足够了。