次orders
のようなドキュメントがあります。
{
"customer":{
"id":1,
"Name":"Foobar"
},
"products":[
{
"id":1,
"name":"Television",
"category": 11
},
{
"id":2,
"name":"Smartphone",
"category": 12
}
]
}
そしてtop_terms_aggregation
、商品の売れ筋を知る為に行っております。グローバルに行うには、次を使用します。
{
"size":0,
"aggs":{
"products":{
"nested":{
"path":"products"
},
"aggs":{
"top_terms_aggregation":{
"terms":{
"field":"products.id",
"size":10
}
}
}
}
}
}
しかし、与えられた製品をどのようにフィルタリングしますcategory_id
か? このフィルターを追加してみました:
"query":{
"bool":{
"must":[
{
"match":{
"products.category":11
}
}
]
}
}
ただし、これにより、特定のカテゴリの製品を含む注文自体がフィルター処理され、集計が破損します。
特定のカテゴリに属するベストセラー商品を取得したいと考えています。