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

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

举报
开通vip

基于Sphinx的Web站内搜索引擎的设计与实现 技 术 创 新 《微计算机信息》(管控一体化 )2010 年第 26 卷第 5-3 期 360元 / 年 邮局订阅号:82-946 《现场总线技术应用 200 例》 网络与通信 基于Sphinx的Web站内搜索引擎的设计与实现 The Design and Implementation of Building Website Internal Search Engine Based on Sphinx (1.中山大学;2.广州市视高电子技术有限公司)刘清明 1 彭宇扬 2 彭自成 1 LIU Qi...

基于Sphinx的Web站内搜索引擎的设计与实现
技 术 创 新 《微计算机信息》(管控一体化 )2010 年第 26 卷第 5-3 期 360元 / 年 邮局订阅号:82-946 《现场总线技术应用 200 例》 网络与通信 基于Sphinx的Web站内搜索引擎的设计与实现 The Design and Implementation of Building Website Internal Search Engine Based on Sphinx (1.中山大学;2.广州市视高电子技术有限公司)刘清明 1 彭宇扬 2 彭自成 1 LIU Qing-ming PENG Yu-yang PENG Zi-cheng 摘要: 目前站内搜索已成为 Web 应用领域的一个热点课 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 。 本文在对站内搜索技术进行分析比较的基础上 ,根据 Sphinx 系 统结构和运行机制的特点提出了一种可通用的基于 Sphinx 构建 Web 站内搜索引擎的 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 。 该方法对于利用 LAMP 技术构 建的网站 ,不用修改它的原有架构而能便捷地生成一个性能优越的站内搜索引擎 。 关键词: 站内搜索; 全文检索; 数据库驱动; 分词 中图分类号: TP311 文献标识码: A Abstract: This paper analyzes and compares the website internal search technologies, then promotes a common method on how to build website internal search engine based on Sphinx according to its system structure and running mechanism features. This method aimed to the websites which built by LAMP, and can create a performance-excellent website internal search engine conveniently and fast for the website without changing its former configurations. Key words: Website Internal Search; Full-text Search; Database Driven; Word Segmentation 文章编号:1008-0570(2010)05-3-0116-03 1 站内搜索技术分析 随着网站内容的不断丰富, 站内搜索逐渐成为继通用搜索 和行业搜索之后的又一个热点,其应用价值日益引起 IT 界的重 视和关注。现有的站内搜索技术一般可归结为三种类型:基于数 据库、基于 Spider 抓取和全文检索技术。 1)传统的数据库字段检索技术对处理非结构化数据有先天 不足,且数据库索引并非是为全文检索设计 ,所以传统的基于数 据库的站内搜索不具备分词功能,无法完成全文检索,检索功能 相对简单;用户对搜索范围、内容和体现的结果无法精确控制。 2)基于 Spider 抓取的站内搜索随着数据量增加 ,搜索结果 中垃圾信息比重上升,影响结果的排序和显示效果,严重影响精 确度,且只能对静态页面搜索,动态页面数据无法抓取;用户对搜 索范围、内容、栏目和体现的结果无法精确、有效的控制,各种垃 圾信息过多。 3)全文检索站内搜索技术对数据库数据进行 html 解析、分 词、索引,实现站内搜索,容量大,速度快,支持分词功能,可用关键 词进行检索,可基于内容分析的排序方法,所有动态网页和没有 链接的网页均可有效收录; 用户可对搜索的内容范围和体现的 结果进行精确的控制,提供动态摘要,摘要清晰明确,便于用户快 速寻找到所需信息。 因此,全文检索技术是站内搜索引擎的主要发展方向。 2 全文检索引擎 Sphinx 简介 Sphinx 是 SQL Phrase Index 的缩写 , 它是俄国人 Andrew Aksyonoff 在试图为一个由数据库驱动的网站寻找解决搜索质 量、搜索性能等各方面的问题而开发的一个高性能独立全文搜 索软件包。 Sphinx 不仅能够为其他应用提供高速、低空间占用、 高结果相关度的全文搜索功能,而且可以非常容易的与 SQL 数 据库和脚本语言集成, 所以极其适合为数据库驱动的网站提供 高质量、高性能的站内搜索。 目前 ,Sphinx 的发布软件包主要包括 4 个部分 :1)indexer: sphinx 索引器 ,用于创建全文索引 ;2)search:一个简单的命令行 (CLI)的测试程序,用于测试全文索引;3)searchd:一个守护进程,其 他软件可以通过这个守护进程进行全文检索 ;4)sphinxapi: 一系 列 searchd 的客户端 API 库, 用于流行的 Web 脚本开发语言编 程时调用。 一般认为,一个完整的检索系统由索引器、检索器和用户接 口三部分组成。在 Sphinx 软件包中 indexer 和 searchd 分别充当 了索引器和检索器的角色,而 sphinxapi 则以 API 的方式提供了 用户接口。 3 基于 Sphinx 的站内搜索引擎的设 计与实现 目前, 很多网站的构建都是采用广为流行的基于开放源代 码的 LAMP(Linux + Apache + MySQL + PHP)技术 ,该技术为网 站建设提供了一套可靠的低成本、高性能解决方案。 考虑到这 种情况,我们的研究就是在基于 LAMP 技术构建的网站平台上 , 借助 Sphinx 软件包提供的全文检索功能、 同时使用 LibMMSeg 中文分词算法软件包来为网站生成一个功能强大的站内搜索 引擎。 3.1 系统目标 本系统要实现一个高效的全文检索站内搜索引擎, 其主要 目标是在查全率和查准率两个方面都有良好的表现, 具体说来 就是应能满足以下两个要求: 1)以本网站内容为搜索目标 ,用户可以通过该系统检索本 网站上所有网页的内容 (无论静态网页还是基于动态网页技术 生成的网页),且提供便于使用的基于 Web 的查询接口; 2)具有较高的查询准确率,随着网站内容不断增加、在海量 检索的情况下仍能保持较快的查询响应速度。刘清明: 硕士研究生 116- - 邮局订阅号:82-946 360 元 / 年 技 术 创 新 网络与通信 《PLC 技术应用 200 例》 您的论文得到两院院士关注 3.2 系统结构 根据以上思路和两个目标,我们设计的基于 Sphinx 全文检 索的搜索引擎的系统结构如图 1 所示。 图 1 基于 Sphinx 的搜索引擎系统结构 在图 1 中 , 运行于 Linux 系统上的 Apache、PHP 和 MySQL 共同构成了站内搜索引擎系统运行的基础网站平台 ;LibMM- Seg、Sphinx indexer 和 Sphinx searchd 则共同实现了系统提供的 核心的搜索功能,且搜索功能模块之间具有很好的内聚性 ,与基 础网站平台之间在功能上保持相对独立性, 能够方便的实现搜 索功能的集成与卸载。 1)图中左下部分是网站后端,主要由 PHP 和 MySQL 共同构 成,负责数据存储和后台管理功能,存储数据的数据库同时作为 检索系统的驱动数据源; 2)右下部分是网站前端,主要由 PHP 实现,可通过脚本语言 调用相应的 API 编程为访问者提供搜索的入口; 3)上面中间部分是站内搜索引擎实现的主体 ,主要完成创 建维护索引和检索索引两大功能 , 分别由 Sphinx 的 indexer 索 引器和 searchd 检索守护进程完成。 其主要工作原理是: * Sphinx 索引器 indexer 在中文分词算法软件包 LibMMSeg 的配合下对 SQL 数据库中的数据进行按关键词分词、分析并为 之生成索引文件(图 1 中实线箭头所示); * 生成的索引文件供用户提交的查询请求通过相应的 API (这里是 PHP API) 调用检索器 searchd 守护进程为用户提供查 询服务(图 1 中粗虚线箭头所示)。 3.3 系统主要功能的实现 1)中文分词 要创建索引,首先需要把要索引的内容按关键词进行分词。 Sphinx 索引器 indexer 本身不支持中文分词功能,所以在我们的 系统中中文分词要采用 LibMMSeg 中文分词算法软件包来实 现。 LibMMSeg 是 MMSeg 中文分词算法的具体实现,我们可在安 装系统时指定它为 Sphinx 提供中文分词支持。 之后每次调用 Sphinx indexer 创建索引前 ,LibMMSeg 就会 把数据按照读取的顺序依次生成一组数据块, 每个块中包含依 据上下文分出的一组词和长度、平均长度、 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 差的平方和自 由语素度 4 个相关的属性; 之后采用复杂最大匹配法根据需要 依次计算有关属性的值并利用与之对应的规则对块进行过滤 , 匹配过程结束后得到的未被过滤的块即是中文分词的结果。 2)索引创建与维护 索引的创建和维护是搜索系统能够提供全文检索服务的 前提和关键。 要创建索引 ,可利用 Sphinx 的 sphinx.conf 配置文 件为要索引的数据指定一个或多个索引, 每个索引用一个索引 名标识。 然后,编制相应的命令行调用 indexer 索引器完成索引 的创建。 随着网站中新数据的不断加入, 随之而来的另一个也是更 重要的问题就是索引的更新维护。 可以通过重新索引的方法来 实现索引的更新。但是当整个数据集增长到非常大,以至于难于 经常性的重建索引,而每次新增的记录却很少时,我们采用一种 更好的方法即所谓的“主索引+增量索引”模式来实现实时索引 更新。 该模式的实现方法是:设置两个数据源和两个索引 ,对很少 更新或根本不更新的数据建立主索引, 而对新增文档建立增量 索引;增量索引的更新的频率可以非常快,而文档可以在出现几 分钟内就可以被检索到;每隔一段时间,当增量索引增加到一定 程度时,可以通过索引合并把它合并到主索引中 ,同时再对新增 加的数据重新创建一个新的增量索引。 下面给出采用“主索引+增量索引”模式对实时索引进行更 新的部分源代码: (1)在 MySQL 数据库中的工作: CREATE TABLE sph_counter (counter_id INTEGER PRIMARY KEY NOT NULL, max_doc_id INTEGER NOT NULL); (2)在 sphinx.conf 中的工作: source main{ sql_query_pre = SET NAMES utf8 sql_query_pre = REPLACE INTO sph_counter SELECT 1, MAX(id) FROM documents sql_query = SELECT id, title, body FROM documents \ WHERE id <=(SELECT max_doc_id FROM sph_counter WHERE counter_id=1) } source delta : main{ sql_query_pre = SET NAMES utf8 sql_query = SELECT id, title, body FROM documents \ WHERE id >(SELECT max_doc_id FROM sph_counter WHERE counter_id=1) } index main{ source = main; path = /path/to/main } index delta : main{source = delta path = /path/to/delta } 3)索引检索 要实现索引检索,可以通过调用 Sphinx 检索器 searchd 来进 行。searchd是系统中实际用来处理查询的部分,它像服务器一样 运行,负责接受查询请求,根据查询请求在全文索引中进行检索 并把处理后的结果数据集返回不同客户端应用的相应 API。 系统通过使用脚本语言 PHP 调用 API 编程向用户提供基 于 Web 的查询入口。 用户输入要查询的关键词后提交查询请 求,searchd 接收通过 API 传递来的查询请求并进行处理,生成的 结果数据集再通过相应的 API 返回给用户, 用户在查询结果浏 览页面可直接通过点击条目的链接来导航到相应的页面内容。 下面是使用 PHP 调用 Sphinx 进行搜索的示例代码: $s = new SphinxClient();$s->setServer(“localhost”, 3312); $s->setMatchMode(SPH_MATCH_ANY);$result = $s->query (“string”); 4 系统 评价 LEC评价法下载LEC评价法下载评价量规免费下载学院评价表文档下载学院评价表文档下载 通过在实际网站中的运行测试和分析表明 , 与现有基于 Spider 抓取等其他技术实现的站内搜索引擎相比 , 我们的站内 搜索引擎系统是直接基于数据源内容进行搜索, 因此不会发生 在搜索结果中出现垃圾信息和动态页面数据无法检索的情况 , 117- - 技 术 创 新 《微计算机信息》(管控一体化 )2010 年第 26 卷第 5-3 期 360元 / 年 邮局订阅号:82-946 《现场总线技术应用 200 例》 网络与通信 从而使本系统的查准率和查全率能得到很好的保证。另外,本系 统在运行 Debian Linux Etch 的 2GHz AMD Opteron 处理器 、 1GB RAM 的计算机上 ,在一个约有 300000 行及 5 个索引列(每 列包含大约 15 个 单词 英语单词 下载七年级上册英语单词表下载英语单词表下载深圳小学英语单词表 下载高中英语单词 下载 )的活动数据库中 ,可以在 1/100 秒内得 到这些单词中任何一个单词的搜索结果 ,可见具有很高的检索 效率。 5 结束语 对于一个拥有大量数据的网站来说, 定制自己的站内检索 机制是克服通用搜索引擎索引范围不全、更新周期慢、不能定 制等缺点的最佳方法。 总的说来, 按照本文所介绍的通过集成 Sphinx 来为基于 LAMP 技术的网站提供站内搜索的方法具有 很好的通用性。借助这种方法,我们不仅可以在网站构建伊始就 将 Sphinx 和 LibMMSeg 整合到系统中, 而且也能在不对现有网 站的原有架构进行修改的情况下便捷地为网站提供一个性能 优越的站内搜索引擎。 本文的创新点 : 根据站内搜索技术自身的特点 , 本系统采 用了直接对 SQL 数据源的数据进行全文索引、而非传统的基于 Spider 抓取技术获得数据创建索引的方法来提供查询服务 ,从 而使站内搜索的查全率和查准率都有显著的提高, 并避免了通 用搜索技术中垃圾信息过多的问题。 参考文献 [1]刘俊熙,龙怡.站内搜索是下一个网络信息资源检索的最佳点-- 网络,行业和站内搜索的技术分析[J].现代情报, 2008(4): 133-135. [2]Sphinx reference manual [EB/OL]. http://www.sphinxsearch.com/ docs/current.html. [3]李占波, 廖继东, 李华. 基于 DotLucene的垂直搜索引擎的研 究[J]. 微计算机信息, 2007, 23(8-3): 194-195. [4]LibMMSeg中文分词 [EB/OL]. http://www.coreseek.com/open- source/mmseg/. 作者简介:刘清明(1981- ),男,山东郯城人,硕士研究生,主要研究 方向为信息与网络技术 ; 彭宇扬 ,男 ,(1973- ),研发部主任 ,主要 研究方向为数据通信与网络技术; 彭自成(1947- ),男,副教授,硕 士生导师,主要研究方向为软件工程、数据库技术、计算机网络。 Biography:LIU Qing-ming(1981-), male, Sun Yat-sen University master, Research area: Information and Networking technology. (510275 广东广州 中山大学物理科学与工程技术学院) 刘清明 彭自成 (510330 广东广州 广州市视高电子技术有限公司) 彭宇扬 (School of Physics and Engineering, Sun Yat-sen University, Guangzhou 510275,China) LIU Qing-ming PENG Zi-cheng (Guangzhou Saga Technology Co.,Ltd., Guangzhou Guang- dong 510330,China) PENG Yu-yang 通讯地址:(510275 广州 中山大学理工学院) 彭自成 (收稿日期:2009.06.10)(修稿日期:2009.09.10) (上接第 82页) 参考文献 [1]Alan B Johnston. SIP: Understanding the Session Initiation Pro- tocol (Second Edition) [M]. Artech House, 2004. [2]Security in SIP-based Networks. [EB/OL] http://www.cisco.com/ go/telephony. [3]Diffie W, Hellman M. New Directions in Cryptography [J]. IEEE Transactions on Information Theory, 1976, 22 (6): 644-654. [4]李硕,杜玉杰,刘庆卫. DDoS攻击防御机制综述[J].微计算机信 息,2006,2-3:28-30. [5]俞志春,方滨兴,张兆心.SIP协议的安全性研究[J].计算机应用, 2006,9:2124-2126. [6]王景中,徐小青著.计算机通信信息安全技术[M].北京:清华大 学出版社,2006.3. 作者简介:王庆磊(1984-),男,山东临沂市人,硕士研究生,研究方 向为嵌入式系统; 张曦煌(1962-),男,汉族,教授,主要研究领域为 嵌入式系统、计算机网络。 Biography:WANG Qing-lei (1984-), male, ShanDong Province, JiangNan university, Master, Embedded System. (214122 江苏无锡 江南大学信息工程学院 ) 王庆磊 张曦煌 刘步中 (School of Information Technology, Jiang Nan University, Wuxi 214122, China) WANG Qing -lei ZHANG Xi -huang LIU Bu-zhong 通讯地址:(214122 无锡江南大学信息工程学院) 王庆磊 (收稿日期:2009.06.04)(修稿日期:2009.09.04) (上接第 156页) 参考文献 [1]Deshpande H,Bawa M,Garcia -Molina H.Streaming live media over a Peer -to -Peer network [J]. Technical Report, Stanford University ,2001 (8). [2]Stewart R,Xie Q.Stream Control Transmission Protocol [M]. RFC2960,2000,(10). [3]network workong group L. Stream Control Transmission Protocol Applicability System[S]. IETF RFC 3257, April,2000. [4]冉春玉,张广军等.基于 SCTP的客户/服务器的设计与实现.计 算机技术与发展 2007,17 (6):127-130 [5]V.Padmanabhan,H. Wang. Distributing streaming media content using cooperative networking. In International Workshop on Network and Operating Systems Support for Digital Audio and Video (NOSSDAV), 2002 作者简介:屈长青 (1962-),男 ,湖南永州人 ,副教授 ,硕士 ,研究方 向:网络信息安全、流媒体技术。 Biography:QU Chang -qing (1962 - ), Male,Bron in Hunan Yongzhou, Master, Associate Professor. Research fields: Network Information of Security, Streaming media Technology. (425100 湖南永州 湖南科技学院计算机与通信工程系) 屈长青 黄 文 (Department of Computer and Communication Engineering, Hunan University of Science and Engineering, Yongzhou Hu- nan 425100,China) QU Chang-qing HUANG Wen 通讯地址:(425100 湖南永州湖南科技学院计算机与通信工程 系) 屈长青 (收稿日期:2009.05.26)(修稿日期:2009.08.26) 地址 : 北京市海淀区中关村南大街乙 12 号天作 1 号 楼 B 座 812 室 微计算机信息 邮编:100081 电话:010-62132436 010-82168297(T/F) 微计算机信息杂志 旬刊 每册定价:10 元 一年订价:360 元 118- -
本文档为【基于Sphinx的Web站内搜索引擎的设计与实现】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_889988
暂无简介~
格式:pdf
大小:178KB
软件:PDF阅读器
页数:3
分类:互联网
上传时间:2011-12-02
浏览量:33