У меня есть эластичность каждый индекс
{class_id: 1, student_id: 10}
{class_id: 2, student_id: 20}
{class_id: 1, student_id: 30}
{class_id: 2, student_id: 40}
Я хочу такую агрегацию, чтобы
{class_id: 1, student_ids: [10,30]}
{class_id: 2, student_ids: [20,40]}
Не знаю, как это сделать
Вам просто нужно использовать две агрегации terms
, например:
{
"size": 0,
"aggs": {
"classes": {
"terms": {
"field": "class_id"
},
"aggs": {
"students": {
"terms": {
"field": "student_id"
}
}
}
}
}
}
Вы получите по одному ведру для каждого класса, а внутри каждого ведра вы получите по одному ведру на каждого учащегося в этом классе.
извините за это, позвольте мне попробовать, и я вернусь к вам. Спасибо за вашу помощь!
Круто, смело приму ответ, если помог, спасибо ;-)
Не уверен, что вы имеете в виду. Вы получаете ведра
classes
с ключами 1 и 2, и внутри каждого вы получаете ведраstudents
с ключами 10, 30, соответственно, 20, 40. Именно то, что вы просили, или я что-то пропустил?