论文部分内容阅读
Internet是目前人们获取信息的最主要来源之一,各种Web网站构成了Internet信息服务的主体。对于这些网站来说,站内搜索是一个至关重要的功能。好的站内搜索模块能够使用户迅速定位所需要的信息,从而提高信息服务的效率。
目前的Web站点,通常采取的技术手段是引入通用的Web搜索引擎(如Google、百度等等)用于站内搜索。这种方法无需资金投入,实现简单,在一些对站内搜索要求不高的环境下,其搜索效果也可以让人接受。但是,在某些对站内搜索要求比较高的场合,这种方法无论在效率方面还是在搜索结果方面,都无法满足网站用户的需要。在这种情况下,开发一个Web站点内部专用的文档检索系统是十分必要的。这种检索系统可以做到分类细致精确、更新及时,能够实现多入口检索和全文检索,能够定制检索结果的输出格式。本文设计了这样一个站内全文检索系统并给出了具体实现中的部分关键代码。全文共分五章:
第一章,介绍了选题的背景和本文的主要工作。简要回顾了全文检索以及网站站内搜索的概念,分析了站内搜索的必要性,概括了站内搜索的现状,探讨了现有Web站点全文搜索应用模式存在的问题与不足,并提出了一个可行的解决方案。
第二章,对Java下的全文检索工具包Lucene进行了介绍,详细分析了Lucene的实现原理、体系结构以及索引和查询机制,比较了它与其它检索系统的相同点和不同点,同时详述了选择Lucene作为系统开发工具的原因。
第三章,概述了系统需要达到的技术要求以及性能指标并简要叙述了系统的整体设计思路,设计了系统的整体架构和各功能模块。
第四章,简述了系统开发环境的搭建和配置以及用于测试的样本数据的结构和来源。
第五章,讨论了系统具体实现中的关键技术。如:如何为文本文件、Html文件、XML文件添加索引;如何在Lucene中连接数据库并实现数据库索引:如何利用Lucene索引进行全文检索;如何进一步优化索引的性能;如何设计和实现较为精确的Lucene中英文分词:如何实现Web检索服务与Lucene核心的连接;如何进行用户界面设计等等。在必要的地方,本文给出了关键的源代码并加以说明。
本文设计的Web全文检索系统在一定程度上实现了站内搜索引擎的主要功能,具备了相当的实用性。相对于现有的大多数Lucene应用来说,系统在许多方面作出了技术创新,主要表现在以下几点: 1)对于不同类型文档的统一索引模式。可以自动区分不同文档类型并调用相应的文档分析器进行文档预处理。2)通过数据连接对数据库字段中的文本内容进行索引和检索的技术实现。3)综合了最大正向匹配、词典分词、二元切分的高效中文分词方法。4)在结果排序和结果输出方面的性能优化。总的来说,该系统检索功能完备,效率较高,如果对其作进一步开发的话,完全可以用于大中型商业网站的站内信息检索。