Полное происхождение коллапса поля (введено в ES 5.3) можно найти в PR 22337 ( выпуск 21833 ).
Первоначально идея состояла в том, чтобысоздайте новое агрегирование top_groups
, смоделированное после комбо terms
+ top_hits
, но в итоге оно было признано дорогостоящим и не обязательно оптимальным.
Сжатие полей наконец-то реализовано на уровне поиска, поскольку оно может извлечь выгоду из существующих фаз запроса / выборки и требует намного меньше памяти, чем при агрегации. Кроме того, нумерация страниц могла бы работать из коробки.
Обсуждали, будет ли хорошей идеей использовать поле группировки в качестве ключа маршрутизации, чтобы убедиться, что все верхние попадания были расположены на одном и том же сегменте, нов конце концов, это было сочтено слишком большим ограничением.
Итак, короче говоря, при свертывании полей нет такого ограничения для размещения всех документов в одном и том же сегменте, поскольку будет отправлен запрос на выборку (этап 2). в любом случае для всех шардов.
Как всегда, лучший способ - попробовать и оценить производительность.
- 1 индекс с 1 шардом (с ключом маршрутизации и без него)
- 1 индекс с несколькими осколками (с ключом маршрутизации и без него)
Я полагаю, что это не будет иметь большого значения, потому что сворачиваются только верхние попадания и обычный поисковый запрос(без свертывания полей) все равно будет проходить обе фазы запроса / выборки.