Насколько поиск хитов, то они одно и то же, то есть хиты вы получаете будут правильно фильтруются в соответствии с любой из вашего фильтра в filtered
запроса или фильтра в вашем post_filter
.
Однако, что касается скопления, конечный результат будет не таким. Разница между обоими параметрами зависит от того, какой документ устанавливает агрегаты.
Если ваш фильтр находится в запросе filtered
, то ваши агрегирования будут вычисляться по набору документов, выбранному запросом (-ями) и фильтром (-ами) в вашем запросе filtered
, то есть тот же набор документов, который вы будете получить ответ.
Если ваш фильтр находится в post_filter
, то ваши агрегации будут вычисляться по набору документов, выбранному вашим различным запросом (-ями). После того, как агрегирования были рассчитаны по этому набору документов, последний фильтруется фильтрами (фильтрами) в вашем post_filter
перед возвратом соответствующих документов.
Подводя итог,
filtered
запроса влияет результатов поиска и агрегирование
- в то время как
post_filter
влияет только на результатах поиска, но не агрегирование
Так как 'отфильтрованный' устарел в ES 2.0. Из-за этого есть какие-то изменения? –
@AnimeshPandey В ES 2.x (и далее) просто замените «отфильтрованный» запрос на запрос «bool/filter», а остальные все еще применяются. – Val