string q = "m";
Query query = new QueryParser("company", new StandardAnalyzer()).Parse(q+"*");
приведет к тому, что запрос будет префиксомQuery: company: a *
Тем не менее, я получу такие результаты, как "Fleet Africa", где довольно очевидно, что A не в начале и, таким образом, дает мне нежелательные результаты.
Query query = new TermQuery(new Term("company", q+"*"));
приведет к тому, что запрос будет termQuery: company: a * и не вернет никаких результатов. Вероятно, потому что он интерпретирует запрос как точное совпадение, и ни одно из моих значений не является литералом «a *».
Query query = new WildcardQuery(new Term("company", q+"*"));
вернет те же результаты, что и префиксный запрос;
Что я делаю неправильно?