Well, I've tried this:
var escapedLowerCaseSearchPattern = QueryParser.Escape(searchPattern);
var prefixEscapedLowerCaseSearchPattern = string.Concat("\"",
escapedLowerCaseSearchPattern,
"*\"");
var queryParser = new QueryParser(/* my lucene version */,
fieldName,
/* a reference to a static instance of my LowerCaseKeywordAnalyzer */);
var query = queryParser.Parse(prefixEscapedLowerCaseSearchPattern);
This generates the very valid query
{Test:auss*}
but does somehow not work...
I remembered that I got results when I've used the Lucene.Net.Search.PrefixQuery
with non umlaut searchPatterns ...
Then, I thought ... well ... just use the Lucene.Net.Index.Term
inside my Lucene.Net.Search.TermQuery
-instance for a Lucene.Net.Search.PrefixQuery
:
var escapedLowerCaseSearchPattern = QueryParser.Escape(searchPattern);
var prefixEscapedLowerCaseSearchPattern = string.Concat("\"",
escapedLowerCaseSearchPattern,
"\"");
var queryParser = new QueryParser(/* my lucene version */,
fieldName,
/* a reference to a static instance of my LowerCaseKeywordAnalyzer */);
var termQuery = (TermQuery) queryParser.Parse(prefixEscapedLowerCaseSearchPattern);
var term = termQuery.Term;
var prefixQuery = new PrefixQuery(term);
BOOOM!
This generates the same query ({Test:auss*}
), but somehow yields a result ... I don't know why, though ...