Moving away from query_string we need to provide primitive queries for wildcard, prefix and fuzzy queries.
The reason we can't use the ones provided by elastic is that unlike query_string they work like a term query.
Some features we need to reproduce:
- best effort analysis of the wildcard so that we can normalize the wildcard: https://github.com/apache/lucene-solr/blob/master/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/QueryParserBase.java#L708
- normalization for all three
- max_deternimized_states for wildcard