我知道无法进行页面聚合,建议的方法是使用复合。 我的问题是,使用复合键时,键是聚合键,我需要按“数字”分页,例如第1,2页,依此类推。
以下是我们尝试过的模型和查询,感谢您的帮助。
模型
{
"_index": "car-catalog",
"_type": "catalogvehicle",
"_id": "9afc0cb6d1899df2fbdb0d004bd64be5529d0874",
"_score": 1.0,
"_source": {
"vehicleSpecification": {
"body": {
"size": null,
"type": "Cabriolet 2 portes",
"doors": "2",
"seats": 2
}
},
"id": "9afc0cb6d1899df2fbdb0d004bd64be5529d0874",
"make": "ABARTH",
"model": "124 Spider",
"shortModel": "124",
"trimline": "1.4 Turbo 170ch Bvm Gt",
"isConfigurable": true
}
}
我需要按Make,Model和BodyType分组,以便每次聚合得到一个文档并分页结果。 例如:第1页应该包含10组,每组包含一个代表车辆的文档,第2页则是接下来的10辆车辆,依此类推。 我不能使用AfterKey,因为我需要保持这些键的状态,而且这不是一个可行的解决方案(至少目前如此)
GET car-catalog-fr-fr-1.0.0/_search/
{
"aggs":{
"make":{
"aggs":{
"model":{
"aggs":{
"body":{
"terms":{
"field":"vehicleSpecification.body.type.idx",
"order":[
{
"_key":"asc"
}
],
"size":10000
},
"aggs":{
"top_sales_hits":{
"top_hits":{
"size":1
}
}
}
}
},
"terms":{
"field":"shortModel.idx",
"order":[
{
"_key":"asc"
}
],
"size":10000
}
}
},
"terms":{
"field":"make.idx",
"order":[
{
"_key":"asc"
}
],
"size":10000
}
}
},
"size":0
}
GET car-catalog-fr-fr-1.0.0/_search
{
"aggs":{
"my_buckets" : {
"composite": {
"sources": [
{ "make": { "terms": { "field": "make.idx", "order": "asc" } } },
{ "model": { "terms": { "field": "model.idx", "order": "asc" } } },
{ "body": { "terms": { "field": "vehicleSpecification.body.type.idx" } } }
]
}
}
}
}