大家听到搜索引擎都会感觉很难写,一点思路都没有,其实php也可以做搜索引擎的开发,不过php需要结合sphinx和mysql才可以开发出我们想要的搜索引擎,想了解php是如何进行搜索引擎开发的嘛!一起来看看吧!!
首先我们下载Sphinx这个工具,下载地址官网下载地址:www.sphinxsearch.com,找到sphinx-2.2.10-release-win64.zip,64位的下载这个,解压到我们的PHP运行目录下面,为后面网页查看结果方便。
sphinx介绍:
Sphinx 是SQL Phrase Index(查询词组索引)的缩写,Sphinx是一个基于SQL的全文检索引擎,它提供的API接口包括:PHP,Python,Perl,Ruby,java等,同时为MySQL也设计了一个引擎插件SphinxSE,它是一个分布式的全文检索系统。
优点:
高速的建立索引可达到10M/s
高性能的搜索(在2-4G的文本数据上,平均每次检索响应的时间小于0.1秒)
可处理海量数据(目前已知可以处理100G的文本数据,在单一的CPU的系统上可处理100M的文档)
提供的优秀的相关度算法,基于短语相似度和统计BM2的复合Ranking的方法
支持分布式搜索
提供文档片段生成功能
可作为Mysql的存储引擎提供搜索服务
支持布尔,短语,词语相似度等多种检索模式
缺点:
必须要有主键
主键必须为整数
不负责数据存储
配置不灵活
解压之后的sphinx结构如图所示:
立即学习“PHP免费学习笔记(深入)”;
下面就是进行我们的相关配置,看到图中的sphinx-min.conf.in,复制到我们的bin目录下面方便一会使用改名字为sphinx.conf,
修改里面的内容:
source src1{type= mysqlsql_host= localhost #主机地址sql_user= root#帐号sql_pass= #密码sql_db= sphinx #数据库sql_port= 3306# 数据库端口 3306sql_query= SELECT id, name, age FROM users #查询语句sql_attr_uint= group_idsql_attr_timestamp= date_addedsql_query_pre = set names utf8 #数据库编码}index test1{source= src1path= D:/myapaphe/www/sphinx/data #这个一定要配置charset_type = utf-8 #指定编码ngram_len = 1 #要找中文需指定为1.ngram_chars = U+3000..U+2FA1F}indexer{mem_limit= 128M}searchd{listen= 9312listen= 9306:mysql41log= D:myapaphewwwsphinxlogsearchd.log #进程日志query_log= D:myapaphewwwsphinxlogquery.log #查询日志read_timeout= 5max_children= 30pid_file= D:myapaphewwwsphinxlogsearchd.pid seamless_rotate= 1preopen_indexes= 1unlink_old= 1workers= threads # for RT to workbinlog_path= D:myapaphewwwsphinxdata}
登录后复制
上面这些一定要配置完毕,路径一定要符合自己的路径。
接下来生成查询索引:
安装searchd服务:
接下来加载配置文件:
启动服务:
OK前面的配置工作,以及服务启动已经完成现在开始代码:
在sphinx下面的api文件夹下面创建test3.php,运行test3.php
SetServer('localhost',9312);$result = $s->Query('高七');echo '';print_r($result);登录后复制
乱码是因为cmd默认是gbk编码,我们放到浏览器中去查看:
我们看到sphinx查到的并不是完整的结果而是把id返给了我们,让我们根据id再去查数据。
下面进行查询时间比对:
我是在4万多条数据测试的时间是0.001s,我们看下mysql的查询需要多久:
我们看到需要0.04s,数据不多,结果没有那么明显,不过0.039s的差距已经不小了。
到此sphinx的整合到此完毕,希望可以帮到大家。
相关推荐:
php 对现有搜索引擎的调用详解
php 判断访客是否为搜索引擎蜘蛛的函数代码
以上就是PHP+Sphinx+Mysql开发搜索引擎详细实例讲解的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2594922.html