If the search query contains a leading wildcard character (*
or ?
), the QueryParser
\'s Parse
function throws an error.
Maybe you have to use a WildcardQuery, but
...In order to prevent extremely slow WildcardQueries, a Wildcard term should not start with one of the wildcards...
You can avoid wildcard queries by utilizing NGramFilter
for your index analyzer. Than you have to use search_analyzer
without NGramFilter
. This way you can search similar to like "%text%"
without even needing wildcards. You just enter 'abc' and your index would be searched for all entries containing 'abc' very quickly.
Set QueryParser.SetAllowLeadingWildcard Method to true. The API page states that "this can produce very slow queries on big indexes" though.