Como combinar várias consultas bool na elasticsearch

Eu quero criar o equivalente da seguinte consulta -

(city = 'New York' AND state = 'NY') AND ((businessName='Java' and businessName='Shop') OR (category='Java' and category = 'Shop'))

Eu tentei diferentes combinações de consultas bool usando must e should, mas nada parece estar funcionando. Isso pode ser feito?