I used to use the 'query_string' query type to run searches across multiple
fields (via the build in dismax capability). However, the Lucene parsing of
the query phrase causes more harm than good for me so I thought to move to
the text query family (that would only analyze but not parse the search
This works fine as long as I only have one field to search. In case of
multiple fields things become difficult as the text query family is
strictly single fielded. I understand that I would have to construct a
boolean (and) query per term with a dismax per field to achieve what
'query_string' is doing implicitly. However, this approach would require
analyzing the search phrase (to get to its terms) before I can construct
the correct query. Doing this analyze would mean another roundtrip via the
analyze API and I could not use the text query with the analyzed terms.
This does not seem right.
So my question is whether I am missing something or whether there is a
certain mismatch in the capabilities of the text vs. query_string API?
Could the text query family be extended to support multiple fields ?