欢迎光临112期刊网!
网站首页 > 论文范文 > 计算机论文 > 信息安全 > 构建基于Lucene的网站站内搜索

构建基于Lucene的网站站内搜索

日期:2023-01-24 阅读量:0 所属栏目:信息安全


摘 要:随着网络时代的发展,信息极具增加,搜索引擎已经成为人们最基本的应用。同时作为专业网站,实现网站信息的站内搜索已成为方便用户使用,吸引用户的基本要素。Lucene作为优秀的开源全文检索框架,可以很好的实现站内检索。

关键词:Lucene;搜索引擎;站内搜索

1. 引言
  自从有了计算机以后,人类开始用计算机保存信息,有保存就需要查找,于是出现了检索技术。文本检索技术的发展从最初的SMART文档检索系统到AltaVista搜索引擎,到现在的搜索巨头Google,人们习惯在互联网上搜索需要的信息。同时在同一个网站内往往拥有大量的资源,怎样在网站内部使用户能够迅速的找到所需信息,已成为一个网站能够吸引用户的重要方面,建立站内搜索引擎成为必要。使用Lucene实现站内搜索比较与传统的使用数据库查询,使用Google提供的站内搜索存在优势。
2. 国内外现状分析
  在如今的网站建设中,建立站内的全文检索有重要的意义。使用Lucene而不用直接从数据库里搜索记录,主要是基于以下原因:
  (1)性能问题,Lucene是基于文件索引的搜索机制,性能要比数据库里检索更快,特别是数据量大的时候两者区别比较明显。
  (2)目前很多网站,都已经将页面静态化,这种情况下,直接用生成的文件编制索引,再利用Lucene来检索,可以不用查询数据库,减轻了数据库的压力。
  (3)Lucene可以更方便的进行分词,支持多个关键字检查等操作,在实现上要比数据库查询方便。
  虽然大型搜索引擎的功能已经越来越强大了,国内外很多站点都使用了Google的站内检索代替了自己的站内数据库全文检索。但依靠Google这样的大型搜索引擎做站内检索会有以下弊端:
  (1)数量有限:搜索引擎并不会深度遍历一个网站而将网站所有的内容都索引进去,例如Google更容易索引静态网页且是最新更新的。基于Lucene的站内搜索,可以索引所有需要的内容。
  (2)更新慢:搜索引擎针对站点的更新频率也是有一定周期的,很多内容需要一定时间后才能进入GOOGLE的索引。基于Lucene的站内搜索,可以及时更新和删除索引。
  (3)内容不精确:搜索引擎需要通过页面内容提取技术将导航条,页头页尾等内容过滤掉,这种摘要和排重机制是很难实现的。基于Lucene的站内搜索,因为对网站内容添加维护的同时进行索引添加,维护可以保证内容的精确程度。
  (4)无法控制输出:当有更多的输出需求,例如按时间排序,按点击量,按类目过滤等,则不够灵活。基于Lucene的站内搜索,使用Lucene的API可以按照实际需要对结果进行分析,排序。
3. Lucene框架
  Apache Lucene是一个基于Java全文搜索引擎,提供一组解读,过滤,分析文件,编排和使用索引的API。使用Lucene建立站内搜索可以方便用户查找信息,并且基于Lucene的全文检索便于索引添加,维护,搜索,并能对搜索结果进行分析,排序。图1列出了Lucene的系统结构与源码组织图。

  图1 Lucene的系统结构与源码组织图。
  从图中看到,Lucene的系统由基础结构封装、索引核心、对外接口三大部分组成。其中直接操作索引文件的索引核心又是系统的重点。Lucene将所有源码分为了7个模块,并分别放在七个包中,分别是:analysis,document,index,queryParser,search,store,util。以下分四个部分对Lucene框架的使用进行阐述。
  (1)建立索引
  Lucene提供了非常简单的建立索引的方法,只要能将要索引的文件转化为文本格式,Lucene就能为这些文档建立索引,建立索引的过程分为以下三个步骤。
  第一步:将不同的数据源组织成一个Document类型的对象。
  第二步:对要建立索引的数据对象进行分析。
  第三步:按照Lucene的索引格式将数据写入索引文件。
  Lucene提供了五个基础的类来实现这些步骤,分别是Document,Field,IndexWriter,Analyzer,Directory。
  (2)搜索
  建立好索引后,就可以根据索引进行搜索。利用Lucene进行搜索,搜索引擎首先会对搜索的关键词进行解析,然后再在建立好的索引上面进行查找,最终返回和用户输入的关键词相关联的文档。搜索的过程可以通过三个步骤来实现。
  第一步:初始化检索工具IndexSearcher,设置索引存放的路径。
  第二步:构建一个Query对象,对查询关键字进行分析。
  第三步:搜索并处理返回的结果。
  Lucene提供了五个基础的类来完成这个过程,它们分别是Query,Term,TermQuery,IndexSearcher,Hits。
  (3)结果排序与文档评分机制
  对于检索到的结果,需要按一定的顺序返回给用户。因此,需要引入一种机制来对检索结果进行排序,以便更加合理地将结果返回给用户。评分机制就是对检索结果按某种标准进行评估,然后按分值的高低来对结果进行排序。Lucene根据内置算法对文档进行评分,另外Lucene在公式中还加入了加权因子,它可以实现有效地对某个查询或某一域给评分带来的影响施加控制,从而改变某一文档的评分,并最终改变在结果中的排序。
  (4)分词
  对于一个工作良好的搜索引擎来说,分词是必不可少的一个核心模块,只有通过分词才可能让信息检索系统理解用户的检索请求,进而为其搜索相关的内容。此外,分词的质量将直接决定搜索引擎的搜索精度,分词的速度也将影响搜索的速度。Lucene提供了分词器,称为Tokenizer,和过滤器,被称为TokenFilter。但是这些分词器和过滤器都只适用于使用英文26个字母组成的语言。对于中文分词,可以利用Lucene的扩展性,将第三方分词工具集成到Lucene中实现中文分词。
4. 结束语
  随着网站内容的越来越丰富,信息量也越来越大的情况下,访问者想要得到他们的信息,站内搜索的作用就会明显起来。Lucene开源框架提供了全文检索功能,利用中文分词的第三方分词工具,可以很好的实现站内搜索,方便用户使用,体现网站专业性,提高网站竞争力。  
参考文献:
. 北京:人民邮电出版社,2007.

本文链接:http://www.qk112.com/lwfw/jsjlw/xinxianquan/225018.html

论文中心更多

发表指导
期刊知识
职称指导
论文百科
写作指导
论文指导
论文格式 论文题目 论文开题 参考文献 论文致谢 论文前言
教育论文
美术教育 小学教育 学前教育 高等教育 职业教育 体育教育 英语教育 数学教育 初等教育 音乐教育 幼儿园教育 中教教育 教育理论 教育管理 中等教育 教育教学 成人教育 艺术教育 影视教育 特殊教育 心理学教育 师范教育 语文教育 研究生论文 化学教育 图书馆论文 文教资料 其他教育
医学论文
医学护理 医学检验 药学论文 畜牧兽医 中医学 临床医学 外科学 内科学 生物制药 基础医学 预防卫生 肿瘤论文 儿科学论文 妇产科 遗传学 其他医学
经济论文
国际贸易 市场营销 财政金融 农业经济 工业经济 财务审计 产业经济 交通运输 房地产经济 微观经济学 政治经济学 宏观经济学 西方经济学 其他经济 发展战略论文 国际经济 行业经济 证券投资论文 保险经济论文
法学论文
民法 国际法 刑法 行政法 经济法 宪法 司法制度 法学理论 其他法学
计算机论文
计算机网络 软件技术 计算机应用 信息安全 信息管理 智能科技 应用电子技术 通讯论文
会计论文
预算会计 财务会计 成本会计 会计电算化 管理会计 国际会计 会计理论 会计控制 审计会计
文学论文
中国哲学 艺术理论 心理学 伦理学 新闻 美学 逻辑学 音乐舞蹈 喜剧表演 广告学 电视电影 哲学理论 世界哲学 文史论文 美术论文
管理论文
行政管理论文 工商管理论文 市场营销论文 企业管理论文 成本管理论文 人力资源论文 项目管理论文 旅游管理论文 电子商务管理论文 公共管理论文 质量管理论文 物流管理论文 经济管理论文 财务管理论文 管理学论文 秘书文秘 档案管理
社科论文
三农问题 环境保护 伦理道德 城镇建设 人口生育 资本主义 科技论文 社会论文 工程论文 环境科学