lucene 高亮
来源:互联网 发布:知党史 编辑:程序博客网 时间:2024/05/17 06:22
import org.apache.lucene.document.Document;import org.apache.lucene.queryparser.classic.MultiFieldQueryParser;import org.apache.lucene.queryparser.classic.QueryParser;import org.apache.lucene.search.IndexSearcher;import org.apache.lucene.search.Query;import org.apache.lucene.search.ScoreDoc;import org.apache.lucene.search.TopDocs;import org.apache.lucene.search.highlight.Formatter;import org.apache.lucene.search.highlight.Highlighter;import org.apache.lucene.search.highlight.QueryScorer;import org.apache.lucene.search.highlight.Scorer;import org.apache.lucene.search.highlight.SimpleHTMLFormatter;import com.itheima.bean.Article;import com.itheima.utils.LuceneUtils;/** * * * 对查询出来的结果所包含的搜索关键字进行高亮... * @author Administrator * */public class TestHighLighter { public static void main(String[] args) throws Exception { String fields []={"title"}; /** * 使用lucene 自带的高亮器进行高亮... */ String keywords="lucene"; QueryParser queryParser=new MultiFieldQueryParser(LuceneUtils.getMatchVersion(),fields,LuceneUtils.getAnalyzer()); Query query=queryParser.parse(keywords); IndexSearcher indexSearcher=LuceneUtils.getIndexSearcher(); TopDocs topDocs=indexSearcher.search(query,100); /** * 使用lucene 自带的高亮起进行高亮.. * */// solr 是基于lucene 的一个全文检索服务器. //solr 是基于<font color='red' >lucene</font> 的一个全文检索服务器. //高亮显示的格式... Formatter formatter=new SimpleHTMLFormatter("<font color='red'>", "</font>"); //query 里面条件,条件里面有搜索关键字 Scorer fragmentScorer=new QueryScorer(query); //构造高亮气... /** * 1:我要高亮成什么颜色 * 2:我要将那些关键字进行高亮... * */ Highlighter highlighter=new Highlighter(formatter, fragmentScorer); Article article=null; System.out.println("总记录数==="+topDocs.totalHits); for(ScoreDoc scoreDoc:topDocs.scoreDocs){ article=new Article(); Document document=indexSearcher.doc(scoreDoc.doc); String title=document.get("title"); String content=document.get("content"); System.out.println("没有高亮之前的结果title=="+title); System.out.println("没有高亮之前的结果content=="+content); //将某段文本高亮,返回高亮过后的结果... String hightitle=highlighter.getBestFragment(LuceneUtils.getAnalyzer(), "title", title); //如果这个字段当中没有包含搜索关键字,你对这个字段的值进行高亮,返回的是null... String highcontent=highlighter.getBestFragment(LuceneUtils.getAnalyzer(), "content", content); System.out.println("高亮之后的结果------------------------------------------------------------"); System.out.println("高亮之后的结果hightitle=="+hightitle); System.out.println("高亮之后的结果highcontent=="+highcontent); if(hightitle==null){ article.setTitle(title); }else{ article.setTitle(hightitle); } if(highcontent==null){ article.setContent(content); }else{ article.setContent(highcontent); } //最终用户得到结果... System.out.println("---"+article.getTitle()); System.out.println("---"+article.getContent()); } }}
阅读全文
0 0
- lucene 高亮显示
- lucene高亮关键字
- lucene 关键字高亮
- Lucene 搜索关键词高亮
- lucene高亮显示
- lucene高亮
- lucene高亮
- lucene 高亮 文件
- Lucene-排序+高亮
- Lucene高亮
- lucene 高亮实例
- lucene 高亮显示
- Lucene 高亮功能
- Lucene-----数据高亮
- lucene 高亮
- lucene学习---高亮显示
- Lucene关键字高亮显示
- Lucene高亮显示详解
- 专访iDST华先胜:城市大脑_对城市的全量、实时认知和搜索
- PlatformIO IDE搭建统一的物联网嵌入式开发环境
- .net 调用webservice接口
- ssh免密码登录
- 负载均衡SLB高可用的四个层次
- lucene 高亮
- easyui combotree 集成在web开发
- android 百度地图路径规划,去掉图标
- 自定义气泡菜单
- 一篇文章读懂Java类加载器
- 复盘_9月——(第1周工作复盘)
- zookeeper知识点
- 「python」输入
- Azkaban的安装和使用