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 ...
随机推荐
- 在Liferay 7中如何自定义一个Portlet的toolbar
哈哈,懒得自己写了,直接贴教程了,你想为那个portlet添加自定义的toolbar,就在javax.portlet.name=属性中写上它的值.教程博客:Adding Portlet URL in ...
- centOS7 安装vsftp服务器
一.目的:有许多时候我们需要从自己机器上,上传文件到Linux服务器上,想要上传文件就必须要通过FTP 协议(File Transfer Protocol(文件传输协议)).所以要在服务器上配置FTP ...
- web框架起源
web框架 python三大主流web框架 django 大而全,自带的组件和功能极多, 缺点:写小项目时候会比较笨重(杀鸡用牛刀),大并发不行,3000撑死 flask 小而精 自带的组件和功能极少 ...
- [React Native]Promise机制
React Native中经常会看到Promise机制. Promise机制代表着在JavaScript程序中下一个伟大的范式.可以把一些复杂的代码轻松撸成一个串,和Android中的rxjava非常 ...
- select筛选用户数据
- shell学习(20)- xargs
xargs 是给命令传递参数的一个过滤器,也是组合多个命令的一个工具. xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据. xargs 也可以将单行或多 ...
- Python操作pymysql写入数据库时的错误
错误一 InternalError: (pymysql.err.InternalError) (1366, "Incorrect string value: '\\xE6\\xAD\\xA3 ...
- 一 linux安装python3
参考 https://www.cnblogs.com/pyyu/p/7402145.html?tdsourcetag=s_pcqq_aiomsg 1 下载 网址:https://www.python. ...
- python while 循环结构
- Hbase数据模型 行