`

二十三、高亮显示

 
阅读更多

public void lighter01() {
        try {
            String txt = "我爱北京,上彩旗飞,伟大领袖,指引我们向前进,向前进!!!想起身离开东京法律思考的机会

                             那个上的讲话那伟大的个圣诞sadfsadnfl.sajdfl;aksjdf;lsadfsadfm.asd那是肯定激发了深刻的机会拉萨宽带计费了那

                             个傻大姐华纳公司的机会节贺卡就是对话框那是国际  北京电话卡开始觉啊 北京得人们大会堂  北京!!!!";
            Query query = new QueryParser(Version.LUCENE_35, "f", new MMSegAnalyzer())
                .parse("北京 伟大");
            QueryScorer scorer = new QueryScorer(query);
            Fragmenter fragment = new SimpleSpanFragmenter(scorer);
            Formatter formatter = new SimpleHTMLFormatter("<span style='color:red'>", "</span>");
            Highlighter highlighter = new Highlighter(formatter, scorer);
            highlighter.setTextFragmenter(fragment);
            String str = highlighter.getBestFragment(new MMSegAnalyzer(), "f", txt);

            System.out.println(str);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (InvalidTokenOffsetsException e) {
            e.printStackTrace();
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }



private String lighterStr(Analyzer a, Query query, String txt, String fieldname)
                                                                                    throws IOException,
                                                                                    InvalidTokenOffsetsException {
        String str = null;
        QueryScorer scorer = new QueryScorer(query);
        Fragmenter fragmenter = new SimpleSpanFragmenter(scorer);
        Formatter fmt = new SimpleHTMLFormatter("<b>", "</b>");
        Highlighter lighter = new Highlighter(fmt, scorer);
        lighter.setTextFragmenter(fragmenter);
        str = lighter.getBestFragments(a.tokenStream(fieldname, new StringReader(txt)), txt, 3,
            "......\n");
        if (str == null)
            return txt;
        return str;
    }



public void searcherByHighlighter(String name) {
        try {
            Analyzer a = new MMSegAnalyzer();
            IndexSearcher searcher = new IndexSearcher(IndexReader.open(FileIndexUtils
                .getDirectory()));
            //QueryParser parser = new QueryParser(Version.LUCENE_35,"title",a);
            MultiFieldQueryParser parser = new MultiFieldQueryParser(Version.LUCENE_35,
                new String[] { "title", "content" }, a);
            Query query = parser.parse(name);
            TopDocs tds = searcher.search(query, 20);
            MoreLikeThis mlt = new MoreLikeThis(searcher.getIndexReader());
            mlt.setFieldNames(new String[] { "title", "content" });
            mlt.setMinDocFreq(1);
            mlt.setMinTermFreq(1);
            for (ScoreDoc sd : tds.scoreDocs) {
                Document doc = searcher.doc(sd.doc);
                String title = doc.get("title");
                title = lighterStr(a, query, title, "title");
                System.out.println(title);
                System.out
                    .println("**************************************************************************************************");
                Query moreLike = mlt.like(sd.doc);
                TopDocs stds = searcher.search(moreLike, 10);
                for (ScoreDoc ssd : stds.scoreDocs) {
                    Document d = searcher.doc(ssd.doc);
                    System.out.println(d.get("title"));
                }
            }
            searcher.close();
        } catch (CorruptIndexException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ParseException e) {
            e.printStackTrace();
        } catch (InvalidTokenOffsetsException e) {
            e.printStackTrace();
        }
    }

分享到:
评论

相关推荐

    第二十五讲、高亮微博话题、人名和显示表情

    总的来说,"第二十五讲、高亮微博话题、人名和显示表情"涵盖了前端开发中的文本处理、样式设计、动态内容插入以及可能的服务器交互等多个环节。通过学习这一讲,开发者可以提升自己在构建社交媒体应用时的能力,创建...

    Allegro显示及操作小技巧七条

    #### 三、网络实体高亮显示优化 Allegro默认的网络高亮显示方式(斜线段落式)可能影响阅读体验,可通过以下步骤优化: 1. **实体高亮显示**:访问`Setup &gt; User Preferences...`中的`Display`设置,勾选`Display ...

    Altium Designer里PCB快捷操作

    #### 三、高亮显示某一层 1. **高亮显示操作**:按住Ctrl键,然后单击需要高亮显示的层标签(例如Top Layer),这样就会使该层高亮显示。 2. **取消高亮显示**:按住Ctrl键,在PCB空白区域单击鼠标左键即可取消高亮...

    高亮度LED封装散热技术详解

    随着LED技术的飞速发展,特别是亮度和功率的显著提升,LED的应用范围已经远远超出了早期仅作为指示灯的角色,广泛应用于背光显示、电子照明等领域。然而,伴随着这些进步而来的是散热问题的加剧。本文将详细探讨高...

    LED显示屏知识完整教程

    #### 十三、08接口转12接口原理 - 在某些情况下,需要将08接口转换为12接口,以满足不同设备间的连接需求。转换原理主要涉及到信号的适配和转换。 #### 十四、LED胶水及材料说明 - LED显示屏使用的胶水和材料对于...

    LED显示屏分类及应用

    #### 二、LED显示屏的应用 LED显示屏的应用范围非常广泛,从商业广告、信息发布到交通信号、舞台背景等领域均有其身影。例如: - **商业广告**:商场、购物中心、酒店大堂等场合,利用LED显示屏进行产品宣传、活动...

    软件破解入门教程.txt

    第二十三课 系统托盘中的快捷图标 第二十四课 WINDOWS钩子函数 第二十五课:位图初步 第二十七课 工具提示控件 第二十八课 Win32调试API 第一部分 第二十六课 启动画面 第二十九课 Win32调试API 第二部分 第...

    二十三种设计模式【PDF版】

    主要是介绍各种格式流行的软件设计模式,对于程序员的进一步提升起推进作用,有时间可以随便翻翻~~ 23种设计模式汇集 如果你还不了解设计模式是什么的话? 那就先看设计模式引言 ! 学习 GoF 设计模式的重要性 ...

    LED行业深度报告:Mini LED成就显示之美,量产在即.zip

    它将像素点尺寸缩小到几十微米级别,显著提升了显示屏幕的分辨率和对比度。相比于传统的LED背光,Mini LED提供了更高的亮度控制精度,能够实现局部调光,从而提高画质并降低功耗。 二、Mini LED技术特点 1. 高分辨...

    全彩LED显示屏的特性及鉴定技巧

    #### 二、全彩LED显示屏的配套产品材料选择 为了确保全彩LED显示屏的质量和稳定性,选择合适的配套产品材料至关重要: 1. **LED灯和芯片**:选择稳定性好、离散性小、HBM大于4000V的LED产品。此外,还应确保LED...

    基于ATC单片机数字温度测量与显示系统的设计和制作.doc

    二、系统关键硬件电路设计 系统的硬件电路设计是基于AT89C51单片机的,包括单片机主机系统电路、温度传感器、显示器、显示电路、温度控制电路等。单片机主机系统电路是系统的核心部分,负责对系统的控制和数据处理...

    LED显示屏驱动芯片的维修资料

    IC(2)74HC138的作用:八位二进制译十进制译码器。 第8脚GND,电源地。 第15脚VCC,电源正极 第1~3脚A、B、C,二进制输入脚。 第4~6脚片选信号控制,只有在4、5脚为“0”6脚为“1”时,才会被选通,输出受A、B、C...

    2021-2025年中国平板显示器件行业基于产业趋势研究与战略决策咨询报告.pdf

    本部分对LED背光源市场概况、2021年显示产业的发展情况以及“十四五”期间中国显示产业的发展展望进行了分析。特别是对OLED技术的发展趋势、市场销售数据、技术对比以及国家产业政策进行了详细阐述。 六、2020-2021...

    11第十一章键盘与显示器接口A.pptx

    第十一章主要探讨了键盘与显示器的接口技术,首先关注的是显示器接口。显示器主要分为三种类型:阴极射线管显示器(CRT)、液晶显示器(LCD)以及发光二极管显示器(LED)。CRT显示器基于传统的电子束扫描技术,而...

    CGDB Manual 0.6.8.pdf

    CGDB 支持多种高亮显示组,以增强用户界面的可读性和美观度。这部分详细介绍了各种高亮显示组及其属性和颜色: 1. **不同的高亮显示组**: - 定义了不同的文本样式,如变量名、关键字等。 2. **不同的属性**: -...

    Android Studio的快捷键使用

    #### 二十三、跳转到实现:Ctrl+Alt+B 如果光标位于接口或抽象类的方法上,则可以快速跳转到其实现处。 #### 二十四、重写方法:Ctrl+O 列出当前类可以重写的所有父类或接口的方法,并可以选择重写其中之一。 ####...

    ISE -dynamic display circuit

    二、动态显示原理 动态显示技术主要利用人眼视觉暂留效应,即当LED显示的更新速度足够快时,人眼会将连续变化的画面视为静态图像。相比静态显示,动态显示可以减少所需的I/O资源,因为同一时间只有一部分LED被驱动,...

    十字旋转LED实训报告.doc

    二、应用原理 1. 视觉暂留效应 这一原理是十字旋转LED显示屏的核心。当LED灯阵列快速旋转时,由于人眼的视觉暂留效应,即光信号在大脑中产生的图像在光消失后仍能短暂保留,使得连续转动的LED阵列在人眼中形成连续...

Global site tag (gtag.js) - Google Analytics