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>’;

}

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 御用导航提示提醒_又现神操作!广西两车主开车走楼梯,车主:导航让我走的!…[通俗易懂]

    御用导航提示提醒_又现神操作!广西两车主开车走楼梯,车主:导航让我走的!…[通俗易懂]大家有没有被导航坑坏的经历?近日柳州市某小区内有两辆小轿车跟着导航走结果都开到了同一楼梯处卡在了同样的地方……2月12日上午,在柳州市柳江区柳西新城小区,一司机开车跟着导航走,结果将车子开到楼梯上了。据网友描述,事故发生在该小区31栋平台上,一辆红色小轿车的四个车轮都在楼梯上,走下楼梯直达小区门口。随后,司机用其他车子把他的汽车拉起来,自己也没有受伤。无独有偶此前就发生过一样的事…

  • 西门子plc冒泡法排序程序_博途graph编程讲解

    西门子plc冒泡法排序程序_博途graph编程讲解TIA博途中实现冒泡排序的两种SCL语言算法TIA博途软件版本:V15.0首先新建一个项目(具体过程这里就不演示了),添加一个FC块(或FB块均可),编程语言选择SCL,如下图,在FC的块接口中,定义我们需要的变量;一个数组型INT变量a用于存储需要排序的数据;一个INT型变量i:排序的起始序号;一个INT型变量j:排序的结束序号;一个TEMP型变量temp1:用于暂时存储中间比较的数据;利用SCL语言中的FOR循环语句,如下图中的程序,使得数组中的数据从a[i]开始比较到a[j],然后从小

  • Django(61)认证组件源码分析

    Django(61)认证组件源码分析认证组件源码入口APIView下的dispatch下的self.initial(request,*args,**kwargs),源码如下:definitial(self,request,

  • linux安装有几种方法_python安装pycharm的方法

    linux安装有几种方法_python安装pycharm的方法Linux安装Pycharm

    2022年10月24日
  • 函数极限的24种定义

    函数极限的24种定义函数极限的24种定义在求函数f(x)的极限问题时:当x→x0时,要求f(x)必须在U°(x0;δ)内有定义当x→∞时,要求f(x)必须在[a,+∞)内有定义其他情况类似…

  • touchesBegan: withEvent: 不执行解决

    touchesBegan: withEvent: 不执行解决touchesBegan:withEvent:/ touchesMoved:withEvent:/ touchesEnded:withEvent:等只能被UIView捕获(如有问题请指出对请指出,路过的大牛请勿喷),当我们创建UIScrollView或UIImageView时,当点击时UIScrollView或UIImageView 会截获touch事件,导致tou

发表回复

您的电子邮箱地址不会被公开。

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