Lucene实现索引和查询(5)

在百度、谷歌等搜索引擎中,进行查询时,返回的网页包含查询关键字的时候会显示为红色,且进行摘要显示,即对包含关键字的部分内容进行截取并返回。高亮查询即为实现对关键字的样式更改,本实验在myeclipse中进行,返回结果并���会有样式的改变,只会对返回内容的关键字添加html标签,如果显示到网页即产生样式的变化。

高亮的设置代码如图5-3所示,结果如图5-4所示,会对南京匹配词添加<b>和<font>标签,显示到网页上为加粗和变红。

QueryScorer scorer=new QueryScorer(query); Fragmenter fragmenter=new SimpleSpanFragmenter(scorer); SimpleHTMLFormatter simpleHTMLFormatter=new SimpleHTMLFormatter("<b><font color='red'>","</font></b>"); Highlighter highlighter=new Highlighter(simpleHTMLFormatter, scorer); highlighter.setTextFragmenter(fragmenter);

图5-3:高亮设置

图5-4:高亮显示结果

实验过程中遇到的问题和不足

Lucene版本更新较快,在jdk版本、eclipse版本和lucene版本之间需要一个良好的衔接,否则会造成很多的不兼容,在调试版本以及jdk1.6和jdk1.8的选择上出现很多困难,比如网页抓取中的append方法在1.8版本已经删除,不能使用。但是对文档路劲的读取FSDirectory.open()则需要jdk1.8才支持。

本实验的不足之处主要表现在:

代码的灵活性较低,在爬取网页的时候需要手工进行,且需要对中文和英文分别进行,应该完善代码使得对网页的语言有个判定,然后自动选择执行不同的分词器。

代码的复用性较低,没有较为合理的分类和方法的构建,为了简便,基本在几个核心代码中进行注释和标记而实现效果,有待改进。

代码的可移植性较低,对网页的爬取使用的是jdk1.6的版本,Lucene的实现使用的是jdk1.8的版本,在导出到其他机器上,需要对环境稍加修改和配置,无法实现一键式操作。

总结

本文从Lucene的原理出发,了解了全文检索的思路和方法,并对常用的功能进行了实验和测试。在实验的过程中,了解了搜索引擎的原理,基于信息检索课程的内容上,有了一个更好的实操体验。Lucene 是一个优秀的开源全文本搜索技术框架,通过对它的深入研究,对其实现机制更加熟悉,在研究它的过程中学习了很多面向对象的编程方法和思想,它良好的系统框架和扩展性值得学习借鉴。

--------------------------------------分割线 --------------------------------------

基于Lucene多索引进行索引和搜索 www.linuxidc.com/Linux/2012-05/59757.htm

Lucene 实战(第2版) 中文版 配套源代码

Lucene 实战(第2版) PDF高清中文版

使用Lucene-Spatial实现集成地理位置的全文检索

Lucene + Hadoop 分布式搜索运行框架 Nut 1.0a9

Lucene + Hadoop 分布式搜索运行框架 Nut 1.0a8

Lucene + Hadoop 分布式搜索运行框架 Nut 1.0a7

Lucene实践心得笔记 

Project 2-1: 配置Lucene, 建立WEB查询系统[Ubuntu 10.10]

Lucene的配置及创建索引全文检索 

--------------------------------------分割线 --------------------------------------

Lucene 的详细介绍请点这里
Lucene 的下载地址请点这里 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/b267b3b237a20bf36436ddbcf7ac3d25.html