Агрегации в Elasticsearch. Примеры из Go.

Ответ

Агрегации - подсчеты и группировки: terms (по полю), sum, avg, min, max, date_histogram. В запросе передают агрегации в JSON; в ответе - buckets и значения. В Go формируют body с aggs, парсят ответ. Используют для фасетов, дашбордов, аналитики.

aggs := "{\"aggs\":{\"by_category\":{\"terms\":{\"field\":\"category\"}},\"avg_price\":{\"avg\":{\"field\":\"price\"}}}}"
body := fmt.Sprintf("{\"size\":0,\"aggs\":%s}", aggs)
res, _ := client.Search(..., client.Search.WithBody(strings.NewReader(body)))
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.