Lucene(8.5.0)-如何突出显示带有通配符的已解析查询?
以下是我当前的代码:Lucene(8.5.0)-如何突出显示带有通配符的已解析查询?,lucene,Lucene,以下是我当前的代码: BooleanQuery.Builder bq = new BooleanQuery.Builder(); bq.add(new TermQuery(new Term(FIELD_TYPE, type.name())), BooleanClause.Occur.FILTER); Query stringQuery = parser.parse(queryString).rewrite(reader); bq.add(stringQuery, BooleanClause.O
BooleanQuery.Builder bq = new BooleanQuery.Builder();
bq.add(new TermQuery(new Term(FIELD_TYPE, type.name())), BooleanClause.Occur.FILTER);
Query stringQuery = parser.parse(queryString).rewrite(reader);
bq.add(stringQuery, BooleanClause.Occur.MUST);
BooleanQuery query = bq.build();
QueryScorer scorer = new QueryScorer(query);
scorer.setExpandMultiTermQuery(true);
Highlighter highlighter = new Highlighter(formatter, scorer);
highlighter.setTextFragmenter(new NullFragmenter());
TopDocs searchResults = searcher.search(query, 10);
for (ScoreDoc doc : searchResults.scoreDocs) {
Document document = searcher.doc(doc.doc);
UUID uuid = fromString(document.get(FIELD_ID));
TokenStream ts = analyzer.tokenStream("label", document.get("label"));
String fragment = highlighter.getBestFragment(ts, document.get("label"));
results.put(uuid, fragment);
}
查询工作正常,但是当使用通配符作为术语(例如“ter*”)时,查询返回结果,但片段为null