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>';
}
php_sphinx安装使用的更多相关文章
- docker——容器安装tomcat
写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...
- 网络原因导致 npm 软件包 node-sass / gulp-sass 安装失败的处理办法
如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件.本文主要讨论在不变更 ...
- Sublime Text3安装JsHint
介绍 Sublime Text3使用jshint依赖Nodejs,SublimeLinter和Sublimelinter-jshint. NodeJs的安装省略. 安装SublimeLinter Su ...
- Fabio 安装和简单使用
Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...
- gentoo 安装
加载完光驱后 1进行ping命令查看网络是否通畅 2设置硬盘的标识为GPT(主要用于64位且启动模式为UEFI,还有一个是MBR,主要用于32位且启动模式为bois) parted -a optima ...
- 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. ...
- 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 服务器安装操 ...
- 【原】nodejs全局安装和本地安装的区别
来微信支付有2年多了,从2年前的互联网模式转变为O2O模式,主要的场景是跟线下的商户去打交道,不像以往的互联网模式,有产品经理提需求,我们帮忙去解决问题. 转型后是这样的,团队成员更多需要去寻找业务的 ...
- tLinux 2.2下安装Mono 4.8
Tlinux2.2发行版基于CentOS 7.2.1511研发而成,内核版本与Tlinux2.0发行版保持完全一致,更加稳定,并保持对Tlinux2.0的完全兼容.Mono 4版本要求CentOS 7 ...
随机推荐
- python mooc 3维可视化<第一周第一单元>
基本含义 数据->图像 分类 重点关注空间数据的可视化 方法 二维标量数据场 三维标量数据场 二位标量数据场 颜色映射法 等值线法 立体图法 层次分割法 三维标量数据场 面绘制法 体绘制法 展示 ...
- 初探uni-app
第一步:下载 第二步:安装 第三步:创建项目 第四步:项目目录 项目运行 项目效果为 打包为原生App(云端) 运行打包 使用vue 效果如下,并不好看 使用代码如下 未完,待续.... 就是对着官网 ...
- 【水滴石穿】bstmy-blend-app
这个项目是一个简单的底部导航切换页面 项目的地址为:https://github.com/Bstmy/bstmy-blend-app 先看效果 点击首页是首页面,点击个人中心是个人中心页面 先看代码 ...
- Lunix文件的读写权限问题
今天把在windows平台build好的lunix执行文件复制到Lunix的虚拟机上,发现可执行文件不能执行了,后来才发现文件时有读写和可执行权限的,但是是可以更改的,右键属性,把可执行属性勾选上就可 ...
- gitlab 添加本地项目
1.安装git https://git-scm.com/downloads 2.新建工程 3.创建密钥 a.桌面右键 b.cd ~/.ssh/ 如果提示 “ No such file or di ...
- oracle管理索引
索引是用于加速数据存取的数据对象,合理的使用索引可以大大降低I/O次数,从而提高数据访问性能.索引有很多种我们主要介绍常用的几种: 为什么添加了索引或,会加快查询速度呢? n 单列索引 单列索引是基 ...
- mysql锁机制之行锁(四)
前言 顾名思义,行锁就是一锁锁一行或者多行记录,mysql的行锁是基于索引加载的,所以行锁是要加在索引响应的行上,即命中索引,如下图所示: InnoDB 支持多粒度锁(multiple granula ...
- BKDRHash算法的初步了解
字符串hash最高效的算法, 搜了一下, 原理是: 字符串的字符集只有128个字符,所以把一个字符串当成128或更高进制的数字来看,当然是唯一的 这里unsigned不需要考虑溢出的问题, 不过 ...
- Servlet接口
ServletRequest接口 ServletRequest的对象用于向Servlet提供客户端请求信息,如内容类型,内容长度,参数名称和值,标题信息,属性等. RequestDispatcher接 ...
- Android实战:手把手实现“捧腹网”APP(一)-----捧腹网网页分析、数据获取
Android实战:手把手实现"捧腹网"APP(一)-–捧腹网网页分析.数据获取 Android实战:手把手实现"捧腹网"APP(二)-–捧腹APP原型设计.实 ...