碎破星空 2017-03-16 07:29 采纳率: 0%
浏览 663
已结题

Lucene3.0显示高亮的问题

    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为一个字就正确,两个字以上就报错了,求大神解惑。

  • 写回答

0条回答 默认 最新

    报告相同问题?