分词搜索 sphinx+php+mysql
sphinx3.1.1的安装与使用
- 下载sphinx3.1.1
- wget http://sphinxsearch.com/files/sphinx-3.1.1-612d99f-linux-amd64.tar.gz
- 解压
- tar zxf sphinx-3.1.1-612d99f-linux-amd64.tar.gz
- 改名 sphinx 并移动到 /usr/local/
- mv sphinx-3.1.1 sphinx
- mv sphinx /usr/local/
- 到sphinx目录下创建 data,log文件夹
- cd /usr/local/sphinx
- mkdir data && mkdir log
- 在/usr/local/sphinx/etc 编写 sphinx.conf 配置文件
- vim /usr/local/sphinx/etc/sphinx.conf
#
# Minimal Sphinx configuration sample (clean, simple, functional)
# source src1
{
type = mysql
sql_host = localhost
sql_user = root
sql_pass = root
sql_db = test
sql_port = # optional, default is
sql_query_pre = SET NAMES utf8
sql_query = \
SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content \
FROM documents sql_attr_uint = group_id
sql_attr_timestamp = date_added
} index test1
{
source = src1
path = /usr/local/sphinx/data/test1
min_word_len =
ngram_len =
ngram_chars = U+..U+2FA1F
} indexer
{
mem_limit = 128M
} searchd
{
listen =
listen = :mysql41
log = /usr/local/sphinx/log/searchd.log
query_log = /usr/local/sphinx/log/query.log
read_timeout =
max_children =
pid_file = /usr/local/sphinx/log/searchd.pid
seamless_rotate =
preopen_indexes =
unlink_old =
binlog_path = /usr/local/sphinx/data/
}- 在test数据库中 运行/usr/local/sphinx/etc目录下的example.sql文件
- 进入mysql
- use test;
- source /usr/local/sphinx/etc/example.sql
- 添加索引
- /usr/local/sphinx/bin/indexer -c /usr/local/sphinx/etc/sphinx.conf test1

- /usr/local/sphinx/bin/indexer -c /usr/local/sphinx/etc/sphinx.conf test1 --rotate // 重新生成索引命令
- 运行sphinx
- /usr/local/sphinx/bin/searchd -c /usr/local/sphinx/etc/sphinx.conf

/usr/local/sphinx/bin/searchd -c /usr/local/sphinx/etc/sphinx.conf --stop //停止sphinx命令
- php操作sphinx
- 复制/usr/local/sphinx/api/ 目录下的 sphinxapi.php
$sphinx = new SphinxClient();
$q = $_GET['key'] ?? 'test'; //搜索关键字
// 3.1已经弃用了setMatchMode!直接写查询语法就可以
// 如果要匹配字符串中任意一个词或字使用如下写法
// '"string1" | "string2" | "string3"' // '@(title,content) string' @括号中的是要搜索的字段 可以写多个或单个 // '^$string$' 表示全部匹配 类似mysql中的 fieldName = 'string'
// 更多用法可以参考正则表达式或者官方文档 // 中文分词扩展建议使用scws,官网安装和使用教程说明很详细,(不过sphinx自带的一元分词已经够用了,一般不需要scws
//http://www.xunsearch.com/scws/
$sql = "";
$host = "127.0.0.1";
$port = 9312;
$index = "test1";
$sphinx->SetServer($host, $port);
$sphinx->SetConnectTimeout(10);
$sphinx->SetArrayResult(true);
$res = $sphinx->Query($q, $index);
print_r($res);运行结果如下:
结束,记得数据库数据改变后需重新生成索引
分词搜索 sphinx+php+mysql的更多相关文章
- Sphinx + Coreseek 实现中文分词搜索
Sphinx + Coreseek 实现中文分词搜索 Sphinx Coreseek 实现中文分词搜索 全文检索 1 全文检索 vs 数据库 2 中文检索 vs 汉化检索 3 自建全文搜索与使用Goo ...
- linux环境下安装sphinx中文支持分词搜索(coreseek+mmseg)
linux环境下安装sphinx中文支持分词搜索(coreseek+mmseg) 2013-11-10 16:51:14 分类: 系统运维 为什么要写这篇文章? 答:通过常规的三大步(./confi ...
- 使用sphinx索引mysql数据
数据库表如下 mysql> select * from tb_account; +----+-------+------+ | id | name | age | +----+-------+- ...
- ECSHOP模糊分词搜索和商品列表关键字飘红功能
ECSHOP联想下拉框 1.修改page_header.lbi模版文件,将搜索文本框修改为: <input name="keywords" type="text&q ...
- 【netcore基础】.Net core通过 Lucene.Net 和 jieba.NET 处理分词搜索功能
业务要求是对商品标题可以进行模糊搜索 例如用户输入了[我想查询下雅思托福考试],这里我们需要先将这句话分词成[查询][雅思][托福][考试],然后搜索包含相关词汇的商品. 思路如下 首先我们需要把数据 ...
- ElasticSearch 中文分词搜索环境搭建
ElasticSearch 是强大的搜索工具,并且是ELK套件的重要组成部分 好记性不如乱笔头,这次是在windows环境下搭建es中文分词搜索测试环境,步骤如下 1.安装jdk1.8,配置好环境变量 ...
- php+中文分词scws+sphinx+mysql打造千万级数据全文搜索
转载自:http://blog.csdn.net/nuli888/article/details/51892776 Sphinx是由俄罗斯人Andrew Aksyonoff开发的一个全文检索引擎.意图 ...
- 分词搜索 sphinx3.1.1+php+mysql
sphinx3.1.1的安装与使用 下载sphinx3.1.1 wget http://sphinxsearch.com/files/sphinx-3.1.1-612d99f-linux-amd64. ...
- windows7使用Sphinx+PHP+MySQL详细介绍
安装(Windows) 1.官方下载 Sphinx下载地址: 下载 2.解压并重命名 此处下载版本为3.0.3,将 sphinx 文件夹命名为sphinx 3.文件夹目录介绍 sphinx --api ...
随机推荐
- 重学 Java 设计模式:实战单例模式
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 5个创建型模式的最后一个 在设计模式中按照不同的处理方式共包含三大类:创建型模式.结 ...
- [Python3]星号*的打开方式
python中,* 号除了用来做数量乘法,还有其他的用处. 结论 概括的来说,就是对修饰的变量进行拆分, 对修饰的形式参数进行参数聚集. 单*号,将被修饰的变量按元素方式拆分, 对修饰的形式参数进行参 ...
- Chisel3 - Tutorial - Adder
https://mp.weixin.qq.com/s/SEcVjGRL1YloGlEPSoHr3A 位数为参数的加法器.通过FullAdder级联实现. 参考链接: https://githu ...
- 【算法基础】Trie算法
字符串统计 维护一个字符串集合,支持两种操作: “I x”向集合中插入一个字符串x: “Q x”询问一个字符串在集合中出现了多少次. 共有N个操作,输入的字符串总长度不超过 105105,字符串仅包含 ...
- Java实现 蓝桥杯 算法提高 学霸的迷宫
算法提高 学霸的迷宫 时间限制:1.0s 内存限制:256.0MB 问题描述 学霸抢走了大家的作业,班长为了帮同学们找回作业,决定去找学霸决斗.但学霸为了不要别人打扰,住在一个城堡里,城堡外面是一个二 ...
- Java实现 洛谷 P1010 幂次方
输入输出样例 输入 #1 1315 输出 #1 2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0) import java.util.Scanner; pu ...
- java实现棋盘上的麦子
** 棋盘上的麦子** 你一定听说过这个故事.国王对发明国际象棋的大臣很佩服,问他要什么报酬,大臣说:请在第1个棋盘格放1粒麦子,在第2个棋盘格放2粒麦子,在第3个棋盘格放4粒麦子,在第4个棋盘格放8 ...
- PAT 在霍格沃茨找零钱
如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易.”现在,给定 ...
- 使用macaca抓页面元素,执行命令后报安装失败处理Error: Command failed: ……pm install -r "/data/local/tmp/com.macaca.android.testing"
最近换了小米手机做自动化测试,执行命令的时候报安装失败错误,错误如下 解决:设置小米允许USB安装就好了 pm install -r "/data/local/tmp/com.macaca. ...
- [apue] epoll 的一些不为人所注意的特性
之前曾经使用 epoll 构建过一个轻量级的 tcp 服务框架: 一个工业级.跨平台.轻量级的 tcp 网络服务框架:gevent 在调试的过程中,发现一些 epoll 之前没怎么注意到的特性. a) ...
