Сгруппируйте документы в существующие и несуществующие поля в эластичном поиске

#python #elasticsearch #bucket #elasticsearch-dsl

Вопрос:

Я новичок в эластичном поиске и использую DSL для разделения своих документов на две отдельные группы: те, которые содержат поле extra_data.legend , и те, в которых этого поля вообще нет.

Важно отметить, что extra_data.legend это текстовое поле, содержащее абзацы переменной длины. Поэтому я предполагаю terms , что агрегирование, разделяющее блоки на уникальные значения, было бы непрактичным.

Я читал о недостающих агрегациях, но проблема в том, что они представляют собой агрегации с одним ведром. В моем случае я хотел бы иметь два ведра, те, в которых есть поле, и те, в которых его нет (т. Е. Не существует в документе).

Существует ли агрегация для «дополнения» отсутствующих агрегаций, и могу ли я объединить оба в один результат? или как бы лучше подойти к этому?