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

}

php_sphinx安装使用的更多相关文章

  1. docker——容器安装tomcat

    写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...

  2. 网络原因导致 npm 软件包 node-sass / gulp-sass 安装失败的处理办法

    如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件.本文主要讨论在不变更 ...

  3. Sublime Text3安装JsHint

    介绍 Sublime Text3使用jshint依赖Nodejs,SublimeLinter和Sublimelinter-jshint. NodeJs的安装省略. 安装SublimeLinter Su ...

  4. Fabio 安装和简单使用

    Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...

  5. gentoo 安装

    加载完光驱后 1进行ping命令查看网络是否通畅 2设置硬盘的标识为GPT(主要用于64位且启动模式为UEFI,还有一个是MBR,主要用于32位且启动模式为bois) parted -a optima ...

  6. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...

  7. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 1.实施前准备工作 1.1 服务器安装操 ...

  8. 【原】nodejs全局安装和本地安装的区别

    来微信支付有2年多了,从2年前的互联网模式转变为O2O模式,主要的场景是跟线下的商户去打交道,不像以往的互联网模式,有产品经理提需求,我们帮忙去解决问题. 转型后是这样的,团队成员更多需要去寻找业务的 ...

  9. tLinux 2.2下安装Mono 4.8

    Tlinux2.2发行版基于CentOS 7.2.1511研发而成,内核版本与Tlinux2.0发行版保持完全一致,更加稳定,并保持对Tlinux2.0的完全兼容.Mono 4版本要求CentOS 7 ...

随机推荐

  1. 在Liferay 7中如何自定义一个Portlet的toolbar

    哈哈,懒得自己写了,直接贴教程了,你想为那个portlet添加自定义的toolbar,就在javax.portlet.name=属性中写上它的值.教程博客:Adding Portlet URL in ...

  2. centOS7 安装vsftp服务器

    一.目的:有许多时候我们需要从自己机器上,上传文件到Linux服务器上,想要上传文件就必须要通过FTP 协议(File Transfer Protocol(文件传输协议)).所以要在服务器上配置FTP ...

  3. web框架起源

    web框架 python三大主流web框架 django 大而全,自带的组件和功能极多, 缺点:写小项目时候会比较笨重(杀鸡用牛刀),大并发不行,3000撑死 flask 小而精 自带的组件和功能极少 ...

  4. [React Native]Promise机制

    React Native中经常会看到Promise机制. Promise机制代表着在JavaScript程序中下一个伟大的范式.可以把一些复杂的代码轻松撸成一个串,和Android中的rxjava非常 ...

  5. select筛选用户数据

  6. shell学习(20)- xargs

    xargs 是给命令传递参数的一个过滤器,也是组合多个命令的一个工具. xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据. xargs 也可以将单行或多 ...

  7. Python操作pymysql写入数据库时的错误

    错误一 InternalError: (pymysql.err.InternalError) (1366, "Incorrect string value: '\\xE6\\xAD\\xA3 ...

  8. 一 linux安装python3

    参考 https://www.cnblogs.com/pyyu/p/7402145.html?tdsourcetag=s_pcqq_aiomsg 1 下载 网址:https://www.python. ...

  9. python while 循环结构

  10. Hbase数据模型 行