mający strukturę rodzic-dzieci w Elasticsearch reprezentujący order
z order_revision
dzieci chcę, aby wygenerować histogram price
wykazujące sumę quantity
.Elasticsearch Aggregation: Suma najnowszych Dzieciak za rodzica
{
"_type": "order",
"_id": "1063220887",
"_score": 1,
"_source": {
"order_id": "1063220887",
"product_id": "10446350",
"timestamp": 1462713302000
}
}
{
"_type": "order_revision",
"_id": "10234234",
"_parent": "1063220887",
"_source": {
"price": 9,
"quantity": 3,
"revision": 361,
"timestamp": 1462712196000
}
}
Poniższa agregacja zasadniczo działa, ale zwraca sumę wszystkich istniejących wersji.
{
"aggs": {
"orders": {
"filter": {
"has_parent": {
"parent_type": "order"
}
},
"aggs": {
"quantity_per_price": {
"histogram": {
"field": "price",
"interval": 1
}
"aggs": {
"sum": {"field": quantity"}
}
}
}
}
}
}
W ostatecznej wersji powinien zwrócić tylko sumę pól quantity
dla najnowszej rewizji (z najwyższa/Najnowszy timestamp
) od każdego zamówienia. Nie jestem do końca pewien, jak wymyślić taką agregację, która grupuje według order_id
i wybiera tylko najnowsze dziecko, nie jestem też pewien, czy ta struktura rodzic-dziecko najlepiej modeluje te dane.
Ile wersji masz mniej więcej w jednym zamówieniu? Czy mówimy w rozmiarze 1-2 lub więcej jak 10-20 +? – Val
Byłoby około 10 ... –