zoukankan      html  css  js  c++  java
  • 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("百度");
        }
  • 相关阅读:
    HTML5 新增元素梳理
    HTML布局梳理
    ES6中新增let命令使用方法
    xml学习-语法规则
    初步了解URL
    JavaScript——装饰者模式
    移动视频技术——新增API可手工修正视频方向
    如何在移动视频开发中使用ip组播技术
    Windows平台AnyChat视频显示
    如何实现音频合成立体声录制?
  • 原文地址:https://www.cnblogs.com/Laupaul/p/2469022.html
Copyright © 2011-2022 走看看