Lucene高亮显示内容

 1     public String highlight(Query query,String filedname,String text){
 2         try {
 3             QueryScorer queryScorer=new QueryScorer(query);
 4             Fragmenter fragmenter=new SimpleSpanFragmenter(queryScorer);
 5             Formatter formatter=new SimpleHTMLFormatter("<strong>", "</strong>");
 6             Highlighter highlighter=new Highlighter(formatter,queryScorer);
 7             highlighter.setTextFragmenter(fragmenter);
 8             String str=highlighter.getBestFragment(new MMSegAnalyzer(), filedname, text);
 9             return str;
10         }  catch (IOException e) {
11             e.printStackTrace();
12         } catch (InvalidTokenOffsetsException e) {
13             e.printStackTrace();
14         }
15         return text;
16     }
 1 public void search(String word){
 2         try {
 3             IndexSearcher searcher=Utils.getIndexSearcher();
 4             MultiFieldQueryParser parser=new MultiFieldQueryParser(Version.LUCENE_35, new String[]{"title","summary"}, new MMSegAnalyzer());
 5             Query query=parser.parse(word);
 6             TopDocs topDocs=searcher.search(query, 200);
 7             ScoreDoc[] docs=topDocs.scoreDocs;
 8             for(ScoreDoc s:docs){
 9                 Document d=searcher.doc(s.doc);
10                 System.out.println(this.highlight(query,"title", d.get("title")));
11                 System.out.println(this.highlight(query,"summary",d.get("summary")));
12             }
13         } catch (CorruptIndexException e) {
14             e.printStackTrace();
15         } catch (ParseException e) {
16             e.printStackTrace();
17         } catch (IOException e) {
18             e.printStackTrace();
19         }
20     }
    @Test
    public void testHighlight02(){
        hl.search("百度");
    }

 

转载于:https://www.cnblogs.com/Laupaul/archive/2012/04/24/2469022.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值