关闭

关闭

封号提示

内容

首页 基于Sphinx的Web站内搜索引擎的设计与实现.pdf

基于Sphinx的Web站内搜索引擎的设计与实现.pdf

基于Sphinx的Web站内搜索引擎的设计与实现.pdf

上传者: jisuanji071 2011-11-26 评分1 评论0 下载61 收藏0 阅读量851 暂无简介 简介 举报

简介:本文档为《基于Sphinx的Web站内搜索引擎的设计与实现pdf》,可适用于解决方案领域,主题内容包含技术创新《微计算机信息》(管控一体化)年第卷第期元年邮局订阅号:《现场总线技术应用例》网络与通信基于Sphinx的Web站内搜索引擎的设计与实现Th符等。

技术创新《微计算机信息》(管控一体化)年第卷第期元年邮局订阅号:《现场总线技术应用例》网络与通信基于Sphinx的Web站内搜索引擎的设计与实现TheDesignandImplementationofBuildingWebsiteInternalSearchEngineBasedonSphinx(中山大学广州市视高电子技术有限公司)刘清明彭宇扬彭自成LIUQingmingPENGYuyangPENGZicheng摘要:目前站内搜索已成为Web应用领域的一个热点课题。本文在对站内搜索技术进行分析比较的基础上,根据Sphinx系统结构和运行机制的特点提出了一种可通用的基于Sphinx构建Web站内搜索引擎的方法。该方法对于利用LAMP技术构建的网站,不用修改它的原有架构而能便捷地生成一个性能优越的站内搜索引擎。关键词:站内搜索全文检索数据库驱动分词中图分类号:TP文献标识码:AAbstract:Thispaperanalyzesandcomparesthewebsiteinternalsearchtechnologies,thenpromotesacommonmethodonhowtobuildwebsiteinternalsearchenginebasedonSphinxaccordingtoitssystemstructureandrunningmechanismfeaturesThismethodaimedtothewebsiteswhichbuiltbyLAMP,andcancreateaperformanceexcellentwebsiteinternalsearchengineconvenientlyandfastforthewebsitewithoutchangingitsformerconfigurationsKeywords:WebsiteInternalSearchFulltextSearchDatabaseDrivenWordSegmentation文章编号:()站内搜索技术分析随着网站内容的不断丰富,站内搜索逐渐成为继通用搜索和行业搜索之后的又一个热点,其应用价值日益引起IT界的重视和关注。现有的站内搜索技术一般可归结为三种类型:基于数据库、基于Spider抓取和全文检索技术。)传统的数据库字段检索技术对处理非结构化数据有先天不足,且数据库索引并非是为全文检索设计,所以传统的基于数据库的站内搜索不具备分词功能,无法完成全文检索,检索功能相对简单用户对搜索范围、内容和体现的结果无法精确控制。)基于Spider抓取的站内搜索随着数据量增加,搜索结果中垃圾信息比重上升,影响结果的排序和显示效果,严重影响精确度,且只能对静态页面搜索,动态页面数据无法抓取用户对搜索范围、内容、栏目和体现的结果无法精确、有效的控制,各种垃圾信息过多。)全文检索站内搜索技术对数据库数据进行html解析、分词、索引,实现站内搜索,容量大,速度快,支持分词功能,可用关键词进行检索,可基于内容分析的排序方法,所有动态网页和没有链接的网页均可有效收录用户可对搜索的内容范围和体现的结果进行精确的控制,提供动态摘要,摘要清晰明确,便于用户快速寻找到所需信息。因此,全文检索技术是站内搜索引擎的主要发展方向。全文检索引擎Sphinx简介Sphinx是SQLPhraseIndex的缩写,它是俄国人AndrewAksyonoff在试图为一个由数据库驱动的网站寻找解决搜索质量、搜索性能等各方面的问题而开发的一个高性能独立全文搜索软件包。Sphinx不仅能够为其他应用提供高速、低空间占用、高结果相关度的全文搜索功能,而且可以非常容易的与SQL数据库和脚本语言集成,所以极其适合为数据库驱动的网站提供高质量、高性能的站内搜索。目前,Sphinx的发布软件包主要包括个部分:)indexer:sphinx索引器,用于创建全文索引)search:一个简单的命令行(CLI)的测试程序,用于测试全文索引)searchd:一个守护进程,其他软件可以通过这个守护进程进行全文检索)sphinxapi:一系列searchd的客户端API库,用于流行的Web脚本开发语言编程时调用。一般认为,一个完整的检索系统由索引器、检索器和用户接口三部分组成。在Sphinx软件包中indexer和searchd分别充当了索引器和检索器的角色,而sphinxapi则以API的方式提供了用户接口。基于Sphinx的站内搜索引擎的设计与实现目前,很多网站的构建都是采用广为流行的基于开放源代码的LAMP(LinuxApacheMySQLPHP)技术,该技术为网站建设提供了一套可靠的低成本、高性能解决方案。考虑到这种情况,我们的研究就是在基于LAMP技术构建的网站平台上,借助Sphinx软件包提供的全文检索功能、同时使用LibMMSeg中文分词算法软件包来为网站生成一个功能强大的站内搜索引擎。系统目标本系统要实现一个高效的全文检索站内搜索引擎,其主要目标是在查全率和查准率两个方面都有良好的表现,具体说来就是应能满足以下两个要求:)以本网站内容为搜索目标,用户可以通过该系统检索本网站上所有网页的内容(无论静态网页还是基于动态网页技术生成的网页),且提供便于使用的基于Web的查询接口)具有较高的查询准确率,随着网站内容不断增加、在海量检索的情况下仍能保持较快的查询响应速度。刘清明:硕士研究生邮局订阅号:元年技术创新网络与通信《PLC技术应用例》您的论文得到两院院士关注系统结构根据以上思路和两个目标,我们设计的基于Sphinx全文检索的搜索引擎的系统结构如图所示。图基于Sphinx的搜索引擎系统结构在图中,运行于Linux系统上的Apache、PHP和MySQL共同构成了站内搜索引擎系统运行的基础网站平台LibMMSeg、Sphinxindexer和Sphinxsearchd则共同实现了系统提供的核心的搜索功能,且搜索功能模块之间具有很好的内聚性,与基础网站平台之间在功能上保持相对独立性,能够方便的实现搜索功能的集成与卸载。)图中左下部分是网站后端,主要由PHP和MySQL共同构成,负责数据存储和后台管理功能,存储数据的数据库同时作为检索系统的驱动数据源)右下部分是网站前端,主要由PHP实现,可通过脚本语言调用相应的API编程为访问者提供搜索的入口)上面中间部分是站内搜索引擎实现的主体,主要完成创建维护索引和检索索引两大功能,分别由Sphinx的indexer索引器和searchd检索守护进程完成。其主要工作原理是:*Sphinx索引器indexer在中文分词算法软件包LibMMSeg的配合下对SQL数据库中的数据进行按关键词分词、分析并为之生成索引文件(图中实线箭头所示)*生成的索引文件供用户提交的查询请求通过相应的API(这里是PHPAPI)调用检索器searchd守护进程为用户提供查询服务(图中粗虚线箭头所示)。系统主要功能的实现)中文分词要创建索引,首先需要把要索引的内容按关键词进行分词。Sphinx索引器indexer本身不支持中文分词功能,所以在我们的系统中中文分词要采用LibMMSeg中文分词算法软件包来实现。LibMMSeg是MMSeg中文分词算法的具体实现,我们可在安装系统时指定它为Sphinx提供中文分词支持。之后每次调用Sphinxindexer创建索引前,LibMMSeg就会把数据按照读取的顺序依次生成一组数据块,每个块中包含依据上下文分出的一组词和长度、平均长度、标准差的平方和自由语素度个相关的属性之后采用复杂最大匹配法根据需要依次计算有关属性的值并利用与之对应的规则对块进行过滤,匹配过程结束后得到的未被过滤的块即是中文分词的结果。)索引创建与维护索引的创建和维护是搜索系统能够提供全文检索服务的前提和关键。要创建索引,可利用Sphinx的sphinxconf配置文件为要索引的数据指定一个或多个索引,每个索引用一个索引名标识。然后,编制相应的命令行调用indexer索引器完成索引的创建。随着网站中新数据的不断加入,随之而来的另一个也是更重要的问题就是索引的更新维护。可以通过重新索引的方法来实现索引的更新。但是当整个数据集增长到非常大,以至于难于经常性的重建索引,而每次新增的记录却很少时,我们采用一种更好的方法即所谓的“主索引增量索引”模式来实现实时索引更新。该模式的实现方法是:设置两个数据源和两个索引,对很少更新或根本不更新的数据建立主索引,而对新增文档建立增量索引增量索引的更新的频率可以非常快,而文档可以在出现几分钟内就可以被检索到每隔一段时间,当增量索引增加到一定程度时,可以通过索引合并把它合并到主索引中,同时再对新增加的数据重新创建一个新的增量索引。下面给出采用“主索引增量索引”模式对实时索引进行更新的部分源代码:()在MySQL数据库中的工作:CREATETABLEsphcounter(counteridINTEGERPRIMARYKEYNOT,maxdocidINTEGERNOT)()在sphinxconf中的工作:sourcemain{sqlquerypre=SETNAMESsqlquerypre=REPLACEINTOsphcounterSELECT,MAX(id)FROMdocumentssqlquery=SELECTid,title,bodyFROMdocumentsWHEREid<=(SELECTmaxdocidFROMsphcounterWHEREcounterid=)}sourcedelta:main{sqlquerypre=SETNAMESsqlquery=SELECTid,title,bodyFROMdocumentsWHEREid>(SELECTmaxdocidFROMsphcounterWHEREcounterid=)}indexmain{source=mainpath=pathtomain}indexdelta:main{source=deltapath=pathtodelta})索引检索要实现索引检索,可以通过调用Sphinx检索器searchd来进行。searchd是系统中实际用来处理查询的部分,它像服务器一样运行,负责接受查询请求,根据查询请求在全文索引中进行检索并把处理后的结果数据集返回不同客户端应用的相应API。系统通过使用脚本语言PHP调用API编程向用户提供基于Web的查询入口。用户输入要查询的关键词后提交查询请求,searchd接收通过API传递来的查询请求并进行处理,生成的结果数据集再通过相应的API返回给用户,用户在查询结果浏览页面可直接通过点击条目的链接来导航到相应的页面内容。下面是使用PHP调用Sphinx进行搜索的示例代码:$s=newSphinxClient()$s>setServer(“localhost”,)$s>setMatchMode(SPHMATCHANY)$result=$s>query(“string”)系统评价通过在实际网站中的运行测试和分析表明,与现有基于Spider抓取等其他技术实现的站内搜索引擎相比,我们的站内搜索引擎系统是直接基于数据源内容进行搜索,因此不会发生在搜索结果中出现垃圾信息和动态页面数据无法检索的情况,技术创新《微计算机信息》(管控一体化)年第卷第期元年邮局订阅号:《现场总线技术应用例》网络与通信从而使本系统的查准率和查全率能得到很好的保证。另外,本系统在运行DebianLinuxEtch的GHzAMDOpteron处理器、GBRAM的计算机上,在一个约有行及个索引列(每列包含大约个单词)的活动数据库中,可以在秒内得到这些单词中任何一个单词的搜索结果,可见具有很高的检索效率。结束语对于一个拥有大量数据的网站来说,定制自己的站内检索机制是克服通用搜索引擎索引范围不全、更新周期慢、不能定制等缺点的最佳方法。总的说来,按照本文所介绍的通过集成Sphinx来为基于LAMP技术的网站提供站内搜索的方法具有很好的通用性。借助这种方法,我们不仅可以在网站构建伊始就将Sphinx和LibMMSeg整合到系统中,而且也能在不对现有网站的原有架构进行修改的情况下便捷地为网站提供一个性能优越的站内搜索引擎。本文的创新点:根据站内搜索技术自身的特点,本系统采用了直接对SQL数据源的数据进行全文索引、而非传统的基于Spider抓取技术获得数据创建索引的方法来提供查询服务,从而使站内搜索的查全率和查准率都有显著的提高,并避免了通用搜索技术中垃圾信息过多的问题。参考文献刘俊熙,龙怡站内搜索是下一个网络信息资源检索的最佳点网络,行业和站内搜索的技术分析J现代情报,():SphinxreferencemanualEBOLhttp:wwwsphinxsearchcomdocscurrenthtml李占波,廖继东,李华基于DotLucene的垂直搜索引擎的研究J微计算机信息,,():LibMMSeg中文分词EBOLhttp:wwwcoreseekcomopen-sourcemmseg作者简介:刘清明(),男,山东郯城人,硕士研究生,主要研究方向为信息与网络技术彭宇扬,男,(),研发部主任,主要研究方向为数据通信与网络技术彭自成(),男,副教授,硕士生导师,主要研究方向为软件工程、数据库技术、计算机网络。Biography:LIUQingming(),male,SunYatsenUniversitymaster,Researcharea:InformationandNetworkingtechnology(广东广州中山大学物理科学与工程技术学院)刘清明彭自成(广东广州广州市视高电子技术有限公司)彭宇扬(SchoolofPhysicsandEngineering,SunYatsenUniversity,Guangzhou,China)LIUQingmingPENGZicheng(GuangzhouSagaTechnologyCo,Ltd,GuangzhouGuangdong,China)PENGYuyang通讯地址:(广州中山大学理工学院)彭自成(收稿日期:)(修稿日期:)(上接第页)参考文献AlanBJohnstonSIP:UnderstandingtheSessionInitiationPro-tocol(SecondEdition)MArtechHouse,SecurityinSIPbasedNetworksEBOLhttp:wwwciscocomgotelephonyDiffieW,HellmanMNewDirectionsinCryptographyJIEEETransactionsonInformationTheory,,():李硕,杜玉杰,刘庆卫DDoS攻击防御机制综述J微计算机信息,,:俞志春,方滨兴,张兆心SIP协议的安全性研究J计算机应用,,:王景中,徐小青著计算机通信信息安全技术M北京:清华大学出版社,作者简介:王庆磊(),男,山东临沂市人,硕士研究生,研究方向为嵌入式系统张曦煌(),男,汉族,教授,主要研究领域为嵌入式系统、计算机网络。Biography:WANGQinglei(),male,ShanDongProvince,JiangNanuniversity,Master,EmbeddedSystem(江苏无锡江南大学信息工程学院)王庆磊张曦煌刘步中(SchoolofInformationTechnology,JiangNanUniversity,Wuxi,China)WANGQingleiZHANGXihuangLIUBuzhong通讯地址:(无锡江南大学信息工程学院)王庆磊(收稿日期:)(修稿日期:)(上接第页)参考文献DeshpandeH,BawaM,GarciaMolinaHStreaminglivemediaoveraPeertoPeernetworkJTechnicalReport,StanfordUniversity,()StewartR,XieQStreamControlTransmissionProtocolMRFC,,()networkworkonggroupLStreamControlTransmissionProtocolApplicabilitySystemSIETFRFC,April,冉春玉,张广军等基于SCTP的客户服务器的设计与实现计算机技术与发展,():VPadmanabhan,HWangDistributingstreamingmediacontentusingcooperativenetworkingInInternationalWorkshoponNetworkandOperatingSystemsSupportforDigitalAudioandVideo(NOSSDAV),作者简介:屈长青(),男,湖南永州人,副教授,硕士,研究方向:网络信息安全、流媒体技术。Biography:QUChangqing(),Male,BroninHunanYongzhou,Master,AssociateProfessorResearchfields:NetworkInformationofSecurity,StreamingmediaTechnology(湖南永州湖南科技学院计算机与通信工程系)屈长青黄文(DepartmentofComputerandCommunicationEngineering,HunanUniversityofScienceandEngineering,YongzhouHunan,China)QUChangqingHUANGWen通讯地址:(湖南永州湖南科技学院计算机与通信工程系)屈长青(收稿日期:)(修稿日期:)地址:北京市海淀区中关村南大街乙号天作号楼B座室微计算机信息邮编:电话:(TF)微计算机信息杂志旬刊每册定价:元一年订价:元

类似资料

编辑推荐

唐代七祖之争对禅宗系统发展的影响.pdf

学术交流英语--南京大学出版社.pdf

data preparation for data mining using sas .pdf

英文人物介绍.ppt

电子元器件识别.ppt

职业精品

精彩专题

中秋节除了赏月,你还想怎么过?

“仰头望明月,寄情千里光”,算算你有多久没回家了。庆幸这个中秋节赶上了国庆节,不用悲伤“故乡再无春夏,只有秋冬”,独自一人赏月,8天长假,回家一趟,妥妥的!

用户评论

0/200
    暂无评论
上传我的资料

精选资料

热门资料排行换一换

  • 中国民间故事全集23江苏民间故事…

  • 技术哲学.pdf

  • 辩证理性批判第1卷.pdf

  • 管理研究方法论(李怀祖).pdf

  • 万科城精装修总结.pdf

  • 印度史.pdf

  • 高等数学自学辅导.pdf

  • 新中国连环画·50-60年代 汪…

  • 近代的初曙:18世纪中国观念变迁…

  • 资料评价:

    / 3
    所需积分:1 立即下载

    意见
    反馈

    返回
    顶部