I have a query_string
query I'm using with wildcards and a custom analyzer. The query behaves as expected for some words and not for others.
Here's the query:
"query_string": {
"query": "Abdulla*",
"analyze_wildcard": true,
"allow_leading_wildcard": true,
"analyzer": "custom_common_grams_analyzer",
"fields": ["text"],
"lenient": true
}
}
When I use either ?
or *
wildcards anywhere in the query term Abdullah
, I get the expected results. *bdullah
, Abd?llah
, and Abdull*
return all documents that contain Abdullah
.
The query term grandfathered
, however, doesn't work the same way. I get zero results if I use any ?
wildcards in the word. If I use a *
wildcard I also get zero results, unless the *
is in the last two characters of the word, and the number of results that come back differ if I use grandfather*d
or grandfathere*
. With grandfathere*
I get back the full, correct set of results. My custom analyzer does incorporate stemming.