이 경우 Lucene Highlighter을 사용할 수 있습니다. Lucene의 강조 패키지에는 결과 페이지의 텍스트에서 검색 용어를 강조하는 데 일반적으로 사용되는 "키워드를 문맥에"제공하는 클래스가 포함되어 있습니다.
형광펜 클래스는 중심 구성 요소이며 Fragmenter, fragment Scorer 및 Formatter 클래스를 사용하여 텍스트 부분에서 가장 흥미로운 부분을 추출하고 강조 표시하는 데 사용할 수 있습니다. Highlighter 클래스의 getBestTextFragments 메서드는 문서에서 가장 관련성 높은 텍스트를 선택합니다.
샘플 조각 :
Highlighter highlighter = new Highlighter(htmlFormatter, new QueryScorer(query));
for (int i = 0; i < 10; i++) {
int id = hits.scoreDocs[i].doc;
Document doc = searcher.doc(id);
TokenStream tokenStream = TokenSources.getAnyTokenStream(searcher.getIndexReader(), id, "body", analyzer);
TextFragment[] frag = highlighter.getBestTextFragments(tokenStream, text, false, 10);
...
...