public Map<String, Object> displayHtmlHighlight(String queryString, Analyzer analyzer, int fragmentSize, Content con) throws IOException, InvalidTokenOffsetsException, ParseException{
Map<String, Object> map = new HashMap<>();
map.put("id", con.getId());
System.out.println("原始的标题-----------------"+con.getTitle());
QueryParser qp = new QueryParser(Version.LUCENE_30, "title", analyzer);
Query query = qp.parse(queryString);
Highlighter highlighter = new Highlighter(new SimpleHTMLFormatter("<font color='red'>", "</font>"), new QueryScorer(query));
Fragmenter fragmenter = new SimpleFragmenter(fragmentSize);
highlighter.setTextFragmenter(fragmenter);
String title = highlighter.getBestFragment(analyzer, "title", con.getTitle());
map.put("title", title);
System.out.println("改动后的标题--------------"+title);
System.out.println("原始的内容-----------------"+con.getTxt());
String content = highlighter.getBestFragment(analyzer, "content", con.getTxt());
System.out.println("--改动后的内容----"+content);
map.put("content", content);
System.out.println(map.toString());
return map;
}
我的标题:我的滑板鞋时尚,queryString = 我的 ,fragmentSize设置为200
但是: String title = highlighter.getBestFragment(analyzer, "title", con.getTitle());这个报错了,queryString为一个字就正确,两个字以上就报错了,求大神解惑。