PHP+Sphinx+Mysql开发搜索引擎详细实例讲解

大家听到搜索引擎都会感觉很难写,一点思路都没有,其实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免费学习笔记(深入)”;

PHP+Sphinx+Mysql开发搜索引擎详细实例讲解

下面就是进行我们的相关配置,看到图中的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}

登录后复制

上面这些一定要配置完毕,路径一定要符合自己的路径。

接下来生成查询索引:

PHP+Sphinx+Mysql开发搜索引擎详细实例讲解

安装searchd服务:

PHP+Sphinx+Mysql开发搜索引擎详细实例讲解

接下来加载配置文件:

PHP+Sphinx+Mysql开发搜索引擎详细实例讲解

启动服务:

PHP+Sphinx+Mysql开发搜索引擎详细实例讲解

OK前面的配置工作,以及服务启动已经完成现在开始代码:

在sphinx下面的api文件夹下面创建test3.php,运行test3.php

SetServer('localhost',9312);$result = $s->Query('高七');echo '
';print_r($result);

登录后复制

PHP+Sphinx+Mysql开发搜索引擎详细实例讲解PHP+Sphinx+Mysql开发搜索引擎详细实例讲解

乱码是因为cmd默认是gbk编码,我们放到浏览器中去查看:

PHP+Sphinx+Mysql开发搜索引擎详细实例讲解PHP+Sphinx+Mysql开发搜索引擎详细实例讲解

PHP+Sphinx+Mysql开发搜索引擎详细实例讲解

我们看到sphinx查到的并不是完整的结果而是把id返给了我们,让我们根据id再去查数据。

下面进行查询时间比对:

PHP+Sphinx+Mysql开发搜索引擎详细实例讲解

我是在4万多条数据测试的时间是0.001s,我们看下mysql的查询需要多久:

PHP+Sphinx+Mysql开发搜索引擎详细实例讲解

我们看到需要0.04s,数据不多,结果没有那么明显,不过0.039s的差距已经不小了。

到此sphinx的整合到此完毕,希望可以帮到大家。

相关推荐:

php 对现有搜索引擎的调用详解

php 判断访客是否为搜索引擎蜘蛛的函数代码

以上就是PHP+Sphinx+Mysql开发搜索引擎详细实例讲解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2594922.html

(0)
上一篇 2025年3月6日 17:41:00
下一篇 2025年3月6日 17:41:29

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • mac下php安装intl扩展代码分享

    最近在做一个项目,需要用xampp集成开发环境。xampp是最新版的,且php的intl扩展没有,没有php扩展的源码。 需要手动编译intl扩展。 环境:mac xampp  步骤: (1)php -v:查看php的版本,是7.0.2,然…

    编程技术 2025年3月6日
    200
  • redis集群的实现及使用php进行调用

    本次的文章介绍的是关于redis集群的实现及使用php进行调用,给大家分享一下,有需要的朋友可以参考一下 一、搭建redis集群 1.概念解释 redis 3.0之后版本支持redis-cluster集群,Redis-Cluster采用无中…

    2025年3月6日
    200
  • 十个你需要在 PHP 7 中避免的坑

    本篇文章给大家分享的内容是十个你需要在 php 7 中避免的坑 ,有着一定的参考价值,有需要的朋友可以参考一下 1. 不要使用 mysql_ 类函数 终于,你不用再看到建议不要使用 mysql_ 函数的提示了。因为 PHP 7 从核心上完全…

    2025年3月6日
    200
  • 2019为什么我们还会继续使用 PHP?

    我们来开门见山地说,php 是一门奇葩的语言。它既不快,语法又不漂亮。还没有遵守良好的软件开发实践。但我还是使用它开发了很多软件。那么问题就很明显了为什么今天还在使用 php? 除了个人理想主义的偏好以外,还有很多理由。这才是我们要讨论的范…

    编程技术 2025年3月6日
    200
  • 当编程语言掌握在企业手中,是生机还是危机?

    2019 年 4 月,Java 8 收费时代到来了!2019 年 1 月份,Oracle 宣布将停止 Java 8 更新的免费支持,未来 Java 的更新只适用于已付费的许可证持有者。近日,Oracle 发送邮件通知用户 Java 8 第一…

    2025年3月6日
    200
  • web开发用什么编程语言?

    互联网的世界充满了在不同编程语言的帮助下开发的杂乱的网站,提供不同的好处和缺点。由于有大量的编程语言用于开发网站,您必须选择最适合您的网站需求的编程语言,这就需要对目前流行的可用web开发编程语言有基本了解。 下面本篇文章就来给大家介绍6种…

    2025年3月6日 编程技术
    200
  • 为什么说PHP是最好的语言

    php是世界上最好的语言!这么说虽然带着一定php码农个人感情色彩的偏见,但是也未尝没有道理。 php在web开发中占很大份额在各种语言排行榜中,作为一个专注于web开发的语言也基本上排名前10。 推荐课程:PHP教程。 部署简单很多其他行…

    2025年3月6日
    200
  • php只能做网站吗

    php不只能做网站,还可以实现其他功能,比如:1、爬虫;2、自动化运维;3、嵌入式;4、桌面应用开发;5、APP开发;6、微信开发等等。 PHP是一门C实现的编程语言,通常用于Web开发;但不表示PHP只能进行Web开发、只能做网站。 PH…

    2025年3月6日
    200
  • 什么是php?有哪些优点?

    PHP是一种广泛使用的通用开源脚本语言,其优点有:1、开放源代码;2、免费;3、跨平台性强;4、效率高;5、运行快,程序开发快;6、编辑简单,实用性强;7、面向对象;8、支持脚本语言为主等等。 PHP是目前使用最广泛的编程语言之一。PHP …

    2025年3月6日
    200
  • PHP成立25周年:看看大佬们对PHP都有哪些评价

    1995年,rasmus lerdorf开发了php编程语言。在即将到来的2020年,php将使用25年。我们询问了php的五位专家marcel normann,sebastian bergmann,arne blankerts,ralf …

    2025年3月6日
    200

发表回复

登录后才能评论