Мои проиндексированные документы выглядят следующим образом:
{
"user": {
"email": "test@test.com",
"firstName": "test",
"lastName": "test"
},
...
"category": "test_category"
}
В настоящее время у меня есть агрегат, который подсчитывает документы по электронной почте пользователя, а затем подгруппу для подсчета категорий для каждого пользователя:
"aggs": {
"users": {
"terms": {
"field": "user.email",
"order": {
"_count": "desc"
}
},
"aggs": {
"categories": {
"terms": {
"field": "category",
"order": {
"_count": "desc"
}
}
}
}
}
}
Я пытаюсь включить имя и фамилию пользователя в сегменты, сгенерированные верхней агрегацией, при этом получая те же результаты из субагрегации категорий.Я пытался включить агрегацию top_hits
, но мне не повезло получить желаемые результаты.
Есть какой-нибудь совет?Спасибо!
РЕДАКТИРОВАТЬ:
Позвольте мне перефразировать.Я действительно получил желаемый результат с точки зрения пользовательских данных с агрегацией top_hits
, я просто не знаю, как правильно включить ее в исходное агрегирование, чтобы субагрегация categories
по-прежнему давала мне тот же результат.Я попробовал следующее top_hits
агрегирование:
"aggs": {
"user": {
"top_hits": {
"size": 1,
"_source": {
"include": ["user"]
}
}
}
}
Я хочу, чтобы пользовательские данные были в верхних сегментах агг, а затем все еще иметь агрегирование по категориям ниже этого.