devo alcuni documenti indicizzati su elasticsearch, guardando come questi campioni:Come ottenere gli ultimi valori per ogni gruppo con una query Elasticsearch?
{'country': 'France', 'collected': '2015-03-12', 'value': 20}
{'country': 'Canada', 'collected': '2015-03-12', 'value': 21}
{'country': 'Brazil', 'collected': '2015-03-12', 'value': 33}
{'country': 'France', 'collected': '2015-02-01', 'value': 10}
{'country': 'Canada', 'collected': '2015-02-01', 'value': 11}
{'country': 'Mexico', 'collected': '2015-02-01', 'value': 9}
...
Voglio costruire una query che ottiene un risultato per ogni paese, ottenendo solo quelli con max(collected)
.
Quindi, per gli esempi mostrati sopra, i risultati sarebbero qualcosa come:
{'country': 'France', 'collected': '2015-03-12', 'value': 20}
{'country': 'Canada', 'collected': '2015-03-12', 'value': 21}
{'country': 'Brazil', 'collected': '2015-03-12', 'value': 33}
{'country': 'Mexico', 'collected': '2015-02-01', 'value': 9}
mi sono reso conto che ho bisogno di fare aggregazione su country
, ma sto riuscendo a capire come limitare i risultati sul max(collected)
.
Qualche idea?
Grazie, ho deciso di dargli un (Si noti l'uso del paese prime.) provare! – elias
Ha funzionato bene, è intelligente - grazie! – elias
Non hai ricevuto un errore del tipo: "I dati del campo sono disabilitati sui campi di testo per impostazione predefinita. Imposta fielddata = true su [paese] per caricare i dati del campo in memoria annullando l'inversione dell'indice. usa invece un campo di parole chiave? Se sì, come lo hai risolto? – user1892775