基于sphinx服务实现酷友社区站内搜索

时间:2022-09-23 09:31:08

基于sphinx服务实现酷友社区站内搜索

【摘要】 随着用户的增多,酷友社区站内的帖子数据量不断增大。而现有的基于数据库的搜索对服务器的负载越来越大,严重时,能导致整个服务器跌机。重新构建酷友社区站内全文搜索的需求越发紧迫,本文研究的是基于sphinx服务实现酷友社区站内搜索,这样一来,用户也可以通过站内搜索引擎,更加快捷、准确地找到自己需要的内容。

【关键词】 sphinx 搜索 数据库

一、引言

对于酷友社区网站来说,随着信息量的逐步提升,内容越来越丰富,单纯的通过展示和网站架构已经无法满足用户查找内容的需要。另外,原有的基于MySQL数据库搜索。不仅搜索速度慢,而且会对酷友社区服务器的性能产生影响。这里,提出了一种基于sphinx服务实现酷友社区站内搜索。

二、总体设计

2.1总体框架设计

整体框架可以分为用户请求模块、PHP处理模块以及数据存储模块。这里我们的主要工作是对PHP处理模块进行sphinx服务的搭建。

2.2数据源的配置

数据源提供某种所需要数据的器件或原始媒体。在数据源中存储了所有建立数据库连接的信息。这里我们使用的MySQL数据库做为酷友社区的数据库,所以sphinx的数据源是从MySQL数据库的表里获取的。以下是对帖子表数据源的配置:

source threads

type = mysql #数据库类型

sql_host = 127.0.0.1 #数据库ip地址

sql_user = root #数据库登陆用户名

sql_pass = 123456 #数据库登陆密码

sql_db = coolpad_bbs_06_10 #数据库名

2.3索引的配置

索引与书籍中的目录结构有些类似,在一本书中,利用目录可以快速查找所需信息,而无须阅读整本书。sphinx中的索引数据是结构化文档的集合,每个文档是字段的集合。一行对应一个文档,每一列对应一个字段。索引还可以包含属性用于过滤、排序、分组,这些属性不会被全文检索,仅仅是被存储在索引中。以下是对帖子表索引的配置:

index threads

{

source = threads #资源名称

path = D:/coreseek-3.2.14-win32/var/data/threads #路径

charset_type = zh_cn.utf-8 #编码格式

}

2.4 sphinx服务的开启

进入DOS命令行下,执行以下命令:

cd D:\coreseek-3.2.14-win32 //进入coreseek-3.2.14-win32文件夹

SET PATH=%CD%\bin;%PATH% //设置环境变量

bin\indexer -c etc\csft_mysql.conf --all //建立所有索引

bin\searchd -c etc\csft_mysql.conf //开启sphinx服务

结果及分析

在DOS命令下,输入命令:bin\indexer -c etc\csft_mysql. conf,出现了“using config file ‘etc\csft_mysql.conf’…”,可以看出,sphinx服务可以成功启动。

在DOS命令下,输入命令:bin\search -c etc\csft_mysql. conf Ca coolpad

输入命令后,出现“coolpad”相关帖子数据的信息,测试结果如下图所示,一共搜索到212个“coolpad”主题相关的帖子信息。此结果证明了站内搜索可用。

三、结论

本文给出了一种基于sphinx服务实现酷友社区站内搜索设计与实现方法,通过搭建sphinx服务来实现酷友社区的站内搜索,从而实现快速准确的站内搜索服务。

参 考 文 献

[1]W.Jason Gilmore.PHP与MySQL程序设计(第4版)[M].朱涛江.北京:人民邮电出版社,2011.

[2]Luke Welling,Laura Thomson. PHP和MySQL Web开发[M].武欣.北京:机械工业出版社,2009

上一篇:关于电梯轿厢振动故障分析及处理 下一篇:关于GIS技术在县域电网规划中的应用