假设我有一个像
stringfield:123456
textfield:name website stackoverflow
如果我以下列方式构建查询
StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_42);
QueryParser luceneQueryParser = new QueryParser(Version.LUCENE_42, "", analyzer);
Query luceneSearchQuery = luceneQueryParser.parse("textfield:\"name website\"");
它将按预期返回文档,但如果我使用 Lucene QueryAPI 构建查询
PhraseQuery firstNameQuery = new PhraseQuery();
firstNameQuery.add(new Term("textfield","name website"));
它不会给我任何结果,我将不得不标记“名称网站”并在短语查询中添加每个标记。
QueryAPI 中是否有任何默认方式可以像解析字符串查询时那样进行标记化。当然我可以自己做,但如果它已经实施,那就重新发明轮子。