- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用Lucene搭建全文站内搜索引擎.doc
利用Lucene搭建全文站内搜索引擎
0、 引 言
随着互联网快速地发展与广泛地普及,互联网上的信息量也在迅猛的增加,这使得大家想方便和快捷地在互联网上查询所需信息成为一种奢望. 搜索引擎技术的出现有效的缓解了这一问题,并越来越成为人们关注的焦点. 随着信息化在我国的逐步推进,许多企事业单位、政府都有了自己的信息化系统,通过一段时间的运行都有了大批量的数据,人们也可以使用站内搜索引擎快捷方便地从中获取所需要的信息. Lucene 是一个用 ja-va 语言开发的开源的全文搜索引擎架构,可以利用其来搭建全文(站内) 搜索引擎. 查准率是衡量搜索引擎性能指标之一,查询与内容的文档表示模型较好的利用了语用信息,对提高站内搜索引擎的查准率有很好的作用,本文将利用这个模型和 Lucene 设计和实现一个站内搜索引擎.
1、 Lucene 简介
Lucene 是 Apache 软件基金会 Jakarta 项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个用 Java 语言实现的全文检索引擎架构. 它为数据访问和管理提供了简单的函数调用接口,可以方便地嵌入到各种应用程序中实现全文检索功能,提供了强大的全文索引和检索的源动力. 此外,它还提供了完整的查询引擎和索引引擎及部分文本分析引擎,还具有方便的用户接口、面向WWW 的开发接口、二次应用开发接口等等.Lucene 以其开放源代码的特性、优异的索引结构、良好的系统架构获得了越来越多的应用.Lucene 作为一个全文检索引擎,其具有优秀的面向对象系统架构; 索引文件格式独立于平台; 实现分块索引,提升索引速度等突出的优点.Lucene 系统由基础结构封装、索引核心、对外接口三大部分组成. 其中操作索引文件的索引核心是系统的重点. Lucene 将所有源码分为七个模块,其系统的系统结构图如图 1.Lucene 应用了最基本的一条程序设计准则:引入额外的抽象层以降低耦合性. 在每一个局部细节上,比如某些常用的数据结构与算法上,Lu-cene 也充分的应用了这一条准则. 在高度的面向对象理论的支撑下,使得 Lucene 的实现容易理解且易于扩展.
2、 基于查询与内容的文档表示模型
基于查询与内容的文档表示模型认为当有较多的用户用相同的关键词搜索,并点击相同的搜索结果时,其查询词和被点击的结果文档间有一定的关系,可以用来表示文档. 这部分语用信息对提高搜索引擎的查准率是很有帮助的,因此可以收集这部分语用信息,改进文档表示模型,达到提高搜索引擎的查准率的目的. 基本思路是: 在信息检索系统初始化时,构建文档的向量空间. 随着搜索引擎的运行,用户查询日志将越积越多,这些日志表明了查询词与被点击文档之间的一种关系. 当其所形成的查询集样本空间足够大时就能够提供有价值的用户隐性反馈信息,与文档关联的高频查询词将在一定程度上反映出用户的意图. 即这些高频查询词较好地描述了对应文档的主题信息. 此时,就可以在文档表示中逐步引入查询集的信息,使得文档的特征空间成为查询空间与文档空间信息的整合,从而提高描述文档主题信息的带权特征词的适应度与可信度,达到改善检索性能的目的.
3、 基于查询与内容的文档表示模型和 Lucene 的站内搜索引擎的设计与实现
3. 1 系统设计
目前大多数的企事业单位的网站是动态网站,一般的网络爬虫很难抓取其网站内部的信息.而在开发站内搜索引擎的时候,相关网站的数据库可以获取得到,因此不使用网络爬虫来抓取网页,而选择直接将网站数据库直接转换为固定格式的 xml 文档,这些 xml 文档容易被 lucene 建索引.Lucene 是通过对查询词与被索引文档之间的评分来排序被索引文档,并输出查询结果的. 因此想改变查询结果的排序只需修改其评分函数,修改评分函数的依据是基于查询与内容的文档表示模型中提出的模型修正公式. Lucene 中虽然带有 CJK 分词工具,但是其分词效果不太理想,所以我们将分词效果较好的极易分词工具替换其自带的 CJK 分词工具. 另外,根据这个模型还需设计一个用户查询行为记录和分析模块,用来记录和分析用户查询行为,根据基于查询与内容的文档表示模型所述,当用户的查询行为所形成的样本空间大于一个阈值时将改变文档的表示,根据Lucene 的本身特点,将通过修改评分与排序来实现. 系统的整体结构图如图 2 所示.
综上所述,需要开发查询行为日志记录与分析模块、数据转换模块和用户界面模块,需要修改是 lucene 的评分函数以及替换其自身所带的 CJK分词工具.
3. 1. 1 数据转换与索引 1) 将数据库中的数据转换为 xml 文档通过 JDBC 链接指定的数据库,利用 W3C 规定的
文档评论(0)