代码高亮显示是通过在搜索到的Term中把匹配了用户输入的关键字的周围加上一些标记来实现(比如,关键字是 "中华" 查到的一个Term是 "中华人民共和国",则把这个Term修改一下 把"中华" 两个字加粗,最终结果是这样的:  <b>中华</b>人民共和国 

下边是具体实现的代码片段:

              TopDocs tds = searcher.search(booleanQuery, 500);
ScoreDoc[] sds = tds.scoreDocs;
Formatter formatter = new SimpleHTMLFormatter("<span class=\"highlight\">", "</span>");
Highlighter hl = new Highlighter(formatter,new QueryScorer(booleanQuery));
for (ScoreDoc sd : sds) {
Document doc = searcher.doc(sd.doc);
//title的高亮显示
TokenStream tokenScream_title = context.analyzer.tokenStream("title", new StringReader(doc.get("title")));
String title = hl.getBestFragment(tokenScream_title, doc.get("title"));
//若返回空表示doc.get("title")中不包含相应的关键字
if(title==null){
title=doc.get("title");
}
// System.out.println("title"+title);
//summary的高亮显示
TokenStream tokenScream_summary = context.analyzer.tokenStream("summary", new StringReader(doc.get("summary")));
String summary = hl.getBestFragment(tokenScream_summary, doc.get("summary"));
if(summary==null){
summary=doc.get("summary");
}
// System.out.println("summary" + summary);

  

代码片段,Lucene的高亮显示的更多相关文章

  1. 10 个实用的 jQuery 表单操作代码片段

    jQuery 绝对是一个伟大的开源JavaScript类库,是帮助我们快速和高效开发前端应用的利器.可能大家在日常的开发过程中常常会处理表单相关的 JavaScript,在今天这篇代码片段分享文章中, ...

  2. 10个超棒jQuery表单操作代码片段

    jQuery绝对是一个伟大的开源javascript类库,是帮助我们快速和高效开发前端应用的利器.可能大家在日常的开发过程中常常会处理表单相关的javascript,在今天这篇代码片段分享文章中,这里 ...

  3. 不可错过的10个超棒jQuery表单操作代码片段

    jQuery 绝对是一个伟大的开源javascript类库,是帮助我们快速和高效开发前端应用的利器.可能大家在日常的开发过程中常常会处理表单相关的 javascript,在今天这篇代码片段分享文章中, ...

  4. 最实用、最常用的jQuery代码片段

    // chinacoder.cn JavaScript Document $(document).ready(function() { //.filter(":not(:has(.selec ...

  5. Sublime Text自定制代码片段(Code Snippets)

    在编写代码的整个过程中,开发人员经常会一次又一次的改写或者重用相同的代码段,消除这种重复过程的方法之一是把我们经常用到的代码保存成代码片段(snippets),这使得我们可以方便的检索和使用它们. 为 ...

  6. sublimetext3中保存代码片段

    在日常的开发工作中,不断重复上一次敲过的代码,有时确实感到伐木累."蓝瘦"(难受)."香菇"(想哭),大概表达的也是这样的心境吧!:grinning: 所以,在 ...

  7. Code Snippets 代码片段

    Code Snippets 代码片段       1.Title : 代码片段的标题 2.Summary : 代码片段的描述文字 3.Platform : 可以使用代码片段的平台,有IOS/OS X/ ...

  8. 10个 jQuery 代码片段,可以帮你快速开发。

    转载自:http://mp.weixin.qq.com/s/mMstI10vqwu8PvUwlLborw 1.返回顶部按钮 你可以利用 animate 和 scrollTop 来实现返回顶部的动画,而 ...

  9. 代码片段添加智能提示,打造一款人见人爱的ORM框架

    SqlSugar ORM优点: 1.高性能,达到原生最高水准,比SqlHelper性能要高,比Dapper快30% 比EF快50% 2.支持多种数据库 ,sql版本更新最快,其它会定期更新,可以在多种 ...

随机推荐

  1. Laravel 多where组合

    $model=DB::table("user"); foreach($request as $value){ if($value->name){ $model->whe ...

  2. HTTP API 设计指南(基础部分)

    前言 这篇指南介绍描述了 HTTP+JSON API 的一种设计模式,最初摘录整理自 Heroku 平台的 API 设计指引 Heroku 平台 API 指引. 这篇指南除了详细介绍现有的 API 外 ...

  3. JDK中的序列化和反序列化

    题外话:诸事缠身,不知不觉距离上一篇就将近一个月了,读书不易,学习不易,唯有坚持. 写来写去始终不满意,索性贴一个比较好的文章吧! 参考: [Java基础]序列化与反序列化深入分析

  4. fatal error: malformed or corrupted AST file: &#39;Unable to load module Darwin.pcm 问题解决

    xcode5 编译project.偶然碰到了以下的问题: fatal error: malformed or corrupted AST file: 'Unable to load module &q ...

  5. sql字符串的拼接 (字符串和二进制,erlang的mysql驱动)

    1> list_to_binary(["select * from aa limit","1",",","97"] ...

  6. CentOS后台运行和关闭、查看后台任务命令

    fg.bg.jobs.&.nohup.ctrl+z.ctrl+c 命令 一.& 加在一个命令的最后,可以把这个命令放到后台执行,如 watch -n 10 sh test.sh &am ...

  7. 【Java面试题】36 List、Map、Set三个接口,存取元素时,各有什么特点?

    List与Set都是单列元素的集合,它们有一个功共同的父接口Collection. Set里面不允许有重复的元素, 存元素:add方法有一个boolean的返回值,当集合中没有某个元素,此时add方法 ...

  8. Java 基本概念:jvm、jdk、jre、jse

    jvm 是java虚拟机,将java的class字节码文件翻译成二进制可执行程序.jdk 是java的开发包 Javasdk, java的开发工具,包含SUN公司提供的javaAPI,将java源码编 ...

  9. 消息中间件-ActiveMQ入门实例

    1.下载ActiveMQ: http://activemq.apache.org/download-archives.html 2.运行ActiveMQ 解压缩apache-activemq-5.5. ...

  10. Oracle 之 SQL 面试题 录

    多上网查查   SQL 面试题 1.学号(自动编号) 姓名 性别 年龄­ 0001 xw 男 18­ 0002 mc 女 16­ 0003 ww 男 21­ 0004 xw 男 18­ 请写出实现如下 ...