Elasticsearch: ordem dos filtros para obter o melhor desempenho

O guia Elasticsearch diz

"Cada filtro é calculado e armazenado em cache independentemente, independentemente de onde é usado. Se duas consultas diferentes usarem o mesmo filtro, o mesmo conjunto de bits do filtro será reutilizado. Da mesma forma, se uma única consulta usar o mesmo filtro em vários locais, apenas um conjunto de bits é calculado e depois reutilizado ". (https://www.elastic.co/guide/en/elasticsearch/guide/current/filter-caching.html)

em outra página também diz:

"A ordem dos filtros em uma cláusula bool é importante para o desempenho. Os filtros mais específicos devem ser colocados antes dos filtros menos específicos para excluir o maior número possível de documentos, o mais cedo possível. Se a Cláusula A puder corresponder a 10 milhões de documentos, e a Cláusula B pode corresponder a apenas 100 documentos, a Cláusula B deve ser colocada antes da Cláusula A. " (https://www.elastic.co/guide/en/elasticsearch/guide/current/_filter_order.html)

Eu não entendo como a ordem dos filtros em uma cláusula bool é importante quando cada filtro é armazenado em cache de forma independente.

Eu imagino que a Cláusula B é executada ou recuperada do cache, a Cláusula A é executada ou recuperada do cache e, em seguida, os conjuntos de bits do filtro são 'mesclados'. Por que o pedido importa?

questionAnswers(4)

yourAnswerToTheQuestion