Campo múltiple, palabra múltiple, coincidencia sin cadena de consulta

Me gustaría poder hacer coincidir una búsqueda de múltiples palabras con múltiples campos donde cada palabra buscada está contenida enalguna De los campos, cualquier combinación. La captura es que me gustaríaevitar el uso de cadena de consulta.

curl -X POST "http://localhost:9200/index/document/1" -d '{"id":1,"firstname":"john","middlename":"clark","lastname":"smith"}'
curl -X POST "http://localhost:9200/index/document/2" -d '{"id":2,"firstname":"john","middlename":"paladini","lastname":"miranda"}'

Me gustaría que la búsqueda de 'John Smith' coincida solo con el documento 1. La siguiente consulta hace lo que necesito, pero preferiría evitar usar query_string en caso de que el usuario pase "O", "Y" y cualquiera de los otros parámetros avanzados.

curl -X GET 'http://localhost:9200/index/_search?per_page=10&pretty' -d '{
  "query": {
    "query_string": {
      "query": "john smith",
      "default_operator": "AND",
      "fields": [
        "firstname",
        "lastname",
        "middlename"
      ]
    }
  }
}'

Respuestas a la pregunta(3)

Su respuesta a la pregunta