1
私はESマッピングで親子関係を持っています。子のアグリゲーション(avg)の値で親をフィルタリングしたいと思います。つまり、私はその値が与えられた範囲内にある親だけを検索したい。Elasticsearchの子アグリゲーションによるフィルタ親
私はaggsとpost-filtersでやってみましたが、動作させることができませんでした。
{
"apartments" : {
"mappings" : {
"apartment_availability" : {
"_parent" : {
"type" : "apartment"
},
"_routing" : {
"required" : true
},
"properties" : {
"availability_date" : {
"type" : "date"
},
"apartment_id" : {
"type" : "long"
},
"id" : {
"type" : "long"
},
"price_cents" : {
"type" : "long"
},
"status" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
}
}
},
"apartment" : {
"properties" : {
"id" : {
"type" : "long"
},
}
}
}
}
}
ORUユーザーは3月24〜3月31日と€150-€300の価格帯の期間を選択した場合は、その後、我々は彼らにその期間中に無料ですべてのアパートを見せたいと、平均価格、そのために期間は€150〜€300の範囲です。
は、ここでは、これまで持っているものです。
{
"query": {
"bool": {
"filter": {
"bool": {
"must": [{
"has_child": {
"type": "apartment_availability",
"min_children": 8,
"max_children": 8,
"query": {
"bool": {
"must": [{
"term": {
"status": "available"
}
}, {
"range": {
"availability_date": {
"gte": "2017-03-24",
"lte": "2017-03-31"
}
}
}]
}
}
}
}]
}
}
}
}
}