php_sphinx安装使用

php_sphinx安装使用

Sphinx的简介:

Sphinx是一个独立的全文索引引擎,意图为其他应用提供高速低空间

占用、搜索结果高相关度全文搜索功能。Sphinx可以非常容易的与

SQL数据库和脚本语言集成。内置MySQL和PostgreSQL数据库数据源

的支持。搜索API支持PHP、Python、Perl、Rudy和Java。

Sphinx的使用背景:在mysql中优化的时候,对varchar,char,text对这些数据进行查询时,如果我们使用like ‘%单词’,是无法使用到索引,如果网站的数据量比较大,会拖垮网站的速度。

 

Sphinx的原理:

先对数据源建立索引。采用分词技术,形成一个索引表。当查询某个单词的时候,先到sphinx建立的索引去查找,然后再去数据库用id查找。

 

Windows 安装sphinx的过程:

下载完后解压后,把etc目录下面,把mysql的模板配置文件csft_mysql.conf拷贝到上级目录,并修改为sphinx.conf。然后对其配置数据源,模板里面都有详细注释。

然后去bin目录根据配置好的文件生成生成索引文件:

命令:

Indexer.exe -c sphinx.conf -all   // –all:为配置文件中所有的索引创建索引文件

执行sphinx下的一个程序indexer.exe –c配置文件 –all | 索引的名字

Indexer.exe -c sphinx.conf 索引的名字(sphinx.conf里面配置的)

安装启动sphinx:

语法:

searchd.exe –c 配置文件 –install

该命令对应的参数:

searchd开启服务端

searchd -c 配置文件 索引名称

服务器端默认监听 9312 端口。常用命令:

-c : 指定配置文件路径

–stop : 停止当前服务

–status : 查看当前状态

–install : 安装为 windows 服务

–delete: 删除windows服务

–port  port: 监听的端口

–index  indexName : 只查询某个索引,默认查询所有索引

 

服务启动后,去services.msc 启动 searchd ,验证的话查看端口 netstat -an  看看是否有9312开启

 

 

代码实现:

<?php

require(‘sphinxapi.php’); // 这个文件在sphinx的api目录里

$sc = new SphinxClient(); // 生成客户端

$sc->setServer(‘localhost’,9312); // 设置服务器

$res = $sc->query(‘武侠’,’ mysql’); // 第一个参数是查询内容,第二个参数是索引的名称(sphinx.conf里面配置)

$ids = implode(“,”,array_keys($res[‘matches’]));

$conn = mysqli_connect(“localhost”,”root”,”root”,”test”);

mysqli_query($conn,”set names utf8″);

$sql = “select * from test where id in($ids)”;

$res = mysqli_query($conn,$sql);

$list = array();

while($row = mysqli_fetch_assoc($res)){

       $list[] = $row;

}

mysqli_free_result($res);

mysqli_close($conn);

foreach($list as $v){

       echo $v[‘name’].'<br/>’.$v[‘desc’].'<hr>’;

}

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113350.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • jboss版本查询_趣步2.0.7版本下载

    jboss版本查询_趣步2.0.7版本下载JBoss在2006年被RedHat收购。在各种J2EE应用服务器中,JBoss是最受欢迎而且功能最为强大的应用服务器。不过JBoss从8.0开始改名为WildFly,这个新名称在我看来似乎并不朗朗上口。在折腾JavaEE的配置时,新增一个Server,发现JBoss最多只到JBossv5.0,官网上明明已经更新到7.1了,为何这里只显示这么古老的版本,而且我用的是Eclipse

    2022年10月3日
    3
  • 大数据时代,何来隐私保护_大数据时代人还有什么隐私

    大数据时代,何来隐私保护_大数据时代人还有什么隐私数据影响力正在不断增强。网络上的个人信息帮助特朗普赢得了总统竞选,而民众的在线身份一次又一次的让Facebook突破底线。但由于美国大选以及最近揭露的Facebook数据泄密丑闻,不仅引来了联邦贸易委员会的调查,还让在线消费者和立法者对数据在我们生活中的角色提出了质疑。而数据科学家们也开始质疑起自己的未来。Facebook首席执行官马克扎克伯格对公司造成的疏忽表示道歉,但是对一些数据专家来说,这是…

    2022年9月28日
    6
  • Linux上端口开放常用命令[通俗易懂]

    Linux上端口开放常用命令[通俗易懂]场景系统部署在linux服务器后常需要开发指定的端口。在linux怎样对端口进行操作。注:博客:https://blog.csdn.net/badao_liumang_qizhi关注公众号霸道的程序猿获取编程相关电子书、教程推送与免费下载。实现#查看想开的端口是否已开:firewall-cmd–query-port=8888/tcp#添加指定需要开放的端口:firewall-cmd–add-port=8888/tcp–permanent#重载入添加的端口:

    2025年8月30日
    6
  • 十大漏洞之逻辑漏洞

    十大漏洞之逻辑漏洞在十大漏洞中,逻辑漏洞被称为“不安全的对象引用,和功能级访问控制缺失”。现如今,越权和逻辑漏洞占用比例比较高,包括任意查询用户信息,重置任意用户密码,验证码爆破等。逻辑漏洞:常见的逻辑漏洞:交易支付,密码修改,密码找回,越权修改,越权查询,,突破限制等各种逻辑漏洞不安全的对象引用指的是平行权限的访问控制缺失A,B同为普通用户,他们之间彼此之间的个人资料应该相互保密的,A的资…

    2022年5月29日
    42
  • hdu 1387 Team Queue (链表)「建议收藏」

    hdu 1387 Team Queue (链表)

    2022年1月23日
    46
  • Dreamweaver CS6 完全自学教程 (一)[通俗易懂]

    Dreamweaver CS6 完全自学教程 (一)[通俗易懂]DreamweaverCS6完全自学教程DreamweaverCS6教程下载地址(百度网盘):https://pan.baidu.com/s/1fIUk4O36JCNVCfOQSH22vw百度网盘下载(压缩包):https://pan.baidu.com/s/17G11dm_uXFCWVn5y…

    2022年6月11日
    32

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号