中小型网站站内搜索引擎的设计与实现.docx
《中小型网站站内搜索引擎的设计与实现.docx》由会员分享,可在线阅读,更多相关《中小型网站站内搜索引擎的设计与实现.docx(6页珍藏版)》请在冰豆网上搜索。
![中小型网站站内搜索引擎的设计与实现.docx](https://file1.bdocx.com/fileroot1/2023-2/1/c3d225b0-5cfb-4bc7-b356-6d4a93f39720/c3d225b0-5cfb-4bc7-b356-6d4a93f397201.gif)
中小型网站站内搜索引擎的设计与实现
0引言
全文检索是一种I/O密集型的应用,以往中小型
网站的站内检索多是直接基于关系数据库的检索功能,存在很多弊端和不足,故本文选择在文件系统上构建解决方案。
基于全文检索的站内搜索引擎,把原先分散分布、非结构化、异构的信息资源统一整合,通过统一的检索方式综合利用。
根据上面的分析了解,简化的中小型网站站内搜索功能总体功能如图1所示。
图1站内搜索引擎功能需求图
信息领域的专家一致认为,伴随着网站内部数据的增长,搜索引擎成为市场的一大热点,尤其是企业级的站内搜索,作为专门为企业提供内部信息搜索服务的工具,企业搜索可以实现企业现有业务资源的充分整合,这对提升企业信息化程度与业务效率意义非凡。
1站内搜索引擎的设计
1.1系统用例分析
站内搜索引擎与互联网搜索引擎的核心技术基本
相同,都采用了信息采集、索引、检索等;不同之处在于更适合对内应用,信息采集的规模较小,效率更快,针对性强,而且能够定向定量采集;检索则更加注重个性化,智能化。
并不是简单地将互联网搜索技术拿到网站内部使用,而是对网站内部数据的高效获取和有效组织的技术和过程。
对于企业级网站的站内搜索,更是不仅仅包括互联网搜索的相关技术,还包括一系列对于非结构化数据的组织,分析和安全管理,涵盖的技术层面相当之广泛。
对站内搜索进行用例分析,可以了解其基本需求,确定系统边界。
根据网站的搜索需求,创建站内搜索用
例图来描述中小型网站站内搜索引擎的软件功能模块。
分析不同模块之间的关系,以及如何构成整体的系统。
根据上一节对站内搜索引擎的总体描述,结合上面对站内搜索功能分析,得到系统需求功能分解的用例描述,具体的功能描述如下。
用例1系统设置与管理:
为管理员提供更多的参数设置和管理功能,灵活地控制资源的信息分类,数据更
中小型网站站内搜索引擎的设计与实现*
钟瑞琼
周
黎
韩德志
(广东外语外贸大学思科信息学院,广州510420
关键词:
全文检索;站内搜索引擎;Lucene
*基金资助:
国家自然科学基金(No.61070154、广东省自然科学基金(No.20092A008、广州市科技攻关项目(No.200922-D081
收稿日期:
2011-03-21
修稿日期:
2011-04-18
作者简介:
钟瑞琼(1979-,女,河北唐山人,讲师,在读博士,研究方向为网络技术与信息系统
站内搜索引擎是针对某个网站内部的全文检索服务,具备信息检索的核心技术。
提出在文
件系统上构建的解决方案,使用全文检索开发工具包———Lucene,实现站内搜索引擎系统。
不仅针对关系数据库的数据,还对服务器文件系统上的各种非结构化文档数据进行加工、信息抽取,并创建索引文件进行搜索,最终实现对站内被检索数据的导航浏览,关键字高亮提示,筛选排序等。
经过测试,检索效率较高,效果良好。
摘
要:
新速度,数据存储位置等相关资源。
用例2异构文档解析:
提供Word、PowerPoint、Ex-cel、PDF等文档的解析功能,针对各种文档取出格式,提取有效的正文文档内容,转化成纯文本便于后续处理。
用例3异构数据库的访问:
针对不同的数据库,提供访问接口,读取数据库记录信息和结构信息,分别构造内容正文和结构正文。
用例4文档索引管理:
文本索引部分可以采用分段存储格式,按照不同字段和内容构造搜索引擎索引,便于按照不同字段进行索引和排序。
用例5用户检索服务:
文本检索模块可以提供领域信息的检索服务,为用户提供更加及时、有效的信息。
同时减少无关信息,方便用户快速定位资源,满足用户信息获取的需要。
1.2系统框架设计
中小型网站站内搜索引擎依靠现有的硬件平台与网络环境,针对网站内部的非结构化文档信息以及可能多个异构的结构化数据库,提供整体检索服务方案。
主要内容包括异构文档解析、异构数据库解析、信息分类系统、文档索引系统、信息检索系统、系统管理控制等各种内容,系统的框架如图2所示。
图2系统功能框架
整个系统数据流程从原始数据开始,经过格式化分析和处理,得到统一的中间纯文本形式。
通过信息分类建立不同信息的属性,在安全管理和系统能够管理的配合下,完成文档的索引功能,系统用户通过信息检索系统检索系统数据,系统的流程如图3所示。
图3系统功能流程
2站内搜索引擎系统实现
采用Lucene完成内核功能非常方便,具体内容包括索引生成、索引检索、管理以及前台页面部分。
2.1全文检索索引生成
(1文档索引的建立
TXT格式的文本文件可以直接读取其内容,而对于非结构化的文档,需要利用第三方工具包读取其内容,抽取内容之后再将内容加入到索引域中。
文档设计的域包括Filename、Content、Id、Modified、Filetype。
利用Lucene框架提供的函数和Handletxt.java文件中的CreateTxtIndex方法,对TXT文本文件建立索引。
而对于非TXT的文档,例如Word文档,使用POI解析器提供的函数实现文本内容的提取,我们采用Handledoc.java文件的CreateDocIndex方法。
本网站所有文档的来源都是在网站页面采用的上传方式,保存于服务器上的某个目录,通过对这个目录的读取,得到其中的文档列表,再分别获取后缀名,不同的后缀名代表不同的格式,则调用不同的类来创建索引,例如TXT文档,调用前面Handletxt类的CreateTxtIndex方法,Word文档则调用Handledoc类的CreateDocIndex方法,如此递归,可实现对目录中所有的文档建立索引。
(2数据库索引的建立
数据库的访问主要通过数据库接口完成,得到数据后的索引创建与文本的处理一致。
本网站采用的是MySQL数据库。
和创建文档索引时相比,索引域id的值来源于数据库表中的id字段,同时多了个索引域hits,即点击率。
最后,创建一个BuildIndex类来对上述两个方法进行调用。
这样就已经实现了对非结构化文档和数据库数据的索引整合,只要信息需要被搜索,都可以通过其中任何一种方式来加入到索引条目之中。
2.2索引检索及结果处理
检索代码包括两部分,即索引检索代码和用户访问的界面。
索引检索代码完成用户检索词到本地索引的查询功能,查询结果中对应的关键字要加亮显示。
检索得到的结果集放到一个ArrayList容器中,这个容器存储的其实是一个个对象。
每个对象都包含了结果中的诸如标题、内容、类型等信息,检索页面通过读取这个结果集就可以获取里面所有的结果对象了。
按照检索的对象也可将检索分为三种方式:
①检索网站内的所有数据,包括数据库信息和文档,返回的结果最多且泛,这是一种粗放的检索;②只检索数据库信息,网站中的新闻,通知等信息都是存放在数据中,要检索它们就可以通过这种方式获取结果;③只检索文档。
这三种方式可大抵实现对网站内所有数据检索结果的分门别类,用户便可更轻松快捷地获取想要的信息。
按照检索的索引域也可以将检索分为三种方式:
①标题关键字匹配方式,这样只要数据的标题符合检索关键字便可被检索到,与内容无关;②内容关键字匹配方式,只要数据的内容索引域中出现了关键字便可被检索到,与标题无关;③标题和内容联合匹配,只要标题或者内容中出现了关键字,就可以被检索到,这样把搜索的范围进一步放大了。
2.3索引管理
网站的内容往往处于动态更新中,而创建索引的代码可以一次性地对站内所有内容创建索引,但是如果每次有新内容被添加进来,超级管理员都需要重新对所有内容创建索引,以达到索引对内容的同步更新。
为了更方便管理,超级管理员可以在后台对新添加进网站的信息进行斟酌,决定哪些新信息加入索引条目,哪些不加入,同时可以决定是否删除以往信息的对应索引,当源信息发生改变时则更新索引。
这里结合数据库来操作,数据库中字段IsIndexed和IsModified分别表示“是否已创建索引”和“最近是否被修改过”。
当信息还没有加入索引条目,超级管理员可以操作让其加入索引条目。
当信息已经加入了索引条目,则有两种状态:
①信息最近又被修改过,此时超级管理员可以更新索引或者删除索引;②信息没被修改过,那就只有删除索引的操作。
除了索引的删除、更新和添加,对索引进行备份也是必要的。
超级管理员可以定期备份索引到本地文件夹,也可以将本地保存的索引导入到服务器索引文件夹。
3检索结果测试
3.1搜索引擎系统页面
该网站页面的搜索引擎模块主要包括检索结果显示页面和管理后台的索引管理页面。
只有超级管理员才具有操作索引的权限,故关于索引的操作只有在管理后台进行,而检索页面是对所有用户都可见。
对待不同的结果实行不同的处理,如果是数据库信息,则可以像普通网页实时查看,并且根据发布时间和点击率进行排序。
如果是文档,则可以提供下载,在线预览,并且可以根据用户选择的格式返回相应的结果。
后台超级管理页面如图4所示,前台检索结果生成页面如图5所示。
图4创建索引页面
图5检索结果页面图
3.2各项功能测试
(1创建索引部分测试
测试是否实现了对指定数据表和指定文件夹内所有文件索引的创建,点击创建索引按钮,结果如下:
图6创建索引成功示例
生成的索引文件如图7所示。
如果在以上步骤中已创建了索引,搜索“塞林格”,搜索结果如图8所示:
图7生成的索引文件
(2检索部分测试
首先测试按照索引域来检索的结果,默认是匹配标题,即索引域filename中的项。
可以选择“内容关键字”,则匹配索引域content中的项。
还可以选择联合关键字,得到结果更多。
如图9所示,根据“标题关键字”匹配,得到一条结果。
根据“内容关键字”匹配,可以得到四条结果,如图10所示:
图8搜索结果
图9按“标题关键字”检索结果图
图10按“内容关键字”检索结果
4结语
本文建立了一个基于B/S架构,针对网站站内文本信息的搜索引擎,其中包括主要包括文本信息索引的建立,查询的构造和对结果的处理。
其中索引的建立,一方面包括对站内数据库信息的索引建立,另一方面则是对站内各种非结构化文本信息进行内容抽取,并建立索引。
然后对索引进行查询,可以采取不同方式,根据用户不同的需求返回相应查询结果。
最后,实现了对索引的管理,包括索引的删除,更新,备份,导入。
下一步将实现安全与访问控制,即针对不同的资源,设置不同的访问权限。
按照用户权限决定可以访问到的资源,拒绝未授权的敏感信息访问。
参考文献
[1]王学松.Lucene+Nutch搜索引擎开发[M].北京:
人民邮电
出版社,2008
[2]雷之宇,郑圣蒲,孙皓.用案例学JavaWeb整合开发[M].北
京:
电子工业出版社,2009
[3]明日科技.JSP开发技术大全[M].北京:
人民邮电出版社,2007
[4]李刚,宋伟,邱哲.AJAX+Lucene构建搜索引擎[M].北京:
人民邮电出版社,2006
[5]钱乐秋,赵文耘,牛军钰.软件工程[M].北京:
清华大学出
版社,2007
[6]Pang-NingTAN,MichaelSteinbach等.数据挖掘导论[M].
北京:
人民邮电出版社,2006
[7]吴众欣.Lucene分析与应用[M].北京:
机械工业出版社,2008
[8]OtisGospodnetic,ErikHatcher.LuceneinAction[M].北京:
电子工业出版社,2007
(下转第84页
DesignandImplementationofSearchEngineintheSmallor
MediumWebsite
ZHONGRui-qiong
ZHOULi
HANDe-zhi
(CiscoSchoolofInformatics,GuangdongUniversityofForeignStudies,Guangzhou510420
Keywords:
FullTextRetrieval;SearchEngine;Lucene
SearchenginewithintheWebsiteisthefull-textsearchserviceinaWebsite,withthecore
technologyofinformationretrieval.Proposesasolutionbuiltonthefilesystemandusesthefull-textsearchdevelopmentkit-lucene,torealizeasearchengine.Notonlythedatainthere-lationaldatabasebutalsovariousunstructureddocumentontheserverfilesystemareprocessedandextractstheinformationofthem.Andcreatestheindexfiletosearch,andfinallythenavi-gationview,keywordhighlightingtips,andfilterorderofthedatatoberetrievedwithintheWebsite.Testresultshowsthattheretrievalefficiencyishigh.
Abstract:
ConstructionMethodofTestPlatformforTestingof
BGP4+BasedonRoutingSoftware
DINGXue-Lian
(DepartmentofComputerInformationandManagement,InnerMongolFinanceandEconomicCollege,Hohhot010070
Keywords:
BGP4+;Zebra;TestPlatform
Today,IPv6,whichisthenextgenerationInternetprotocol,isboomingupintheworld.Insuch
aconcretedevelopmentperiodforIPv6commercialization,BGPforIPv6,alsoreferredtoasBGP4+,whichisoneofthemostimportantbordergatewayprotocols,hasbeenattachedimpor-tancetobymanymanufacturerswhoareengagedinroutingdevicesandsoftwares.Uponthebackground,itisanindispensableworktotesttheBGP4+.DiscussesthefeatureofBGP4+,in-troducestheroutingsoftwareZebra,andpresentsamethodwhichestablishesthetestplatformforthetestingofBGP4+protocolbasedontheroutingsoftwareZebraunderLinuxtosupportIPv6indetails.
Abstract:
参考文献
[1]RekhterY,TLi.RFC1771,ABorderGatewayProtocol4,March1995
[2]BatesT,RekhterY,ChandraR,etal.RFC2858,Multiproto-colExtensionsforBGP24,June2000.
[4]RFC2842:
CapabilitiesAdveritsementWithBGP-4,May.2000
0000000000000000000000000000000000000000000000000
(上接第67页