分词搜索 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 ...
随机推荐
- 单片机提高ADC精度总结
在常用传感器中,模数转换器是其中至关重要的环节,模数转换器的精度以及系统的成本直接影响到系统的实用性.因此.如何提高模数转换器的精度和降低系统的成本是衡量系统是否具有实际应用价值的标准. 图 1 ...
- Vim入门教程——转
简书: https://www.jianshu.com/p/bcbe916f97e1
- Alpha冲刺 —— 5.3
这个作业属于哪个课程 软件工程 这个作业要求在哪里 团队作业第五次--Alpha冲刺 这个作业的目标 Alpha冲刺 作业正文 正文 github链接 项目地址 其他参考文献 无 一.会议内容 1.展 ...
- meta个人学习纪录
< meta > 元素 元素可提供相关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词. 标签位于文档的头部,不包含任何内容. 标签的属性定义了与 ...
- (Java实现) 活动选择
活动选择的类似问题都可以这么写 import java.util.ArrayList; public class huodongxuanze { /** * //算法导论中活动选择问题动态规划求解 * ...
- Java实现 LeetCode 1两数之和
1. 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这 ...
- Java实现 洛谷 P1159 排行榜
输入输出样例 输入 #1 5 HIGHHOPES UP LOWFEELINGS UP UPANDDOWN DOWN IAMSTILLSTANDING DOWN FOOLINGAROUND DOWN 输 ...
- 洛谷P1255 数楼梯
题目描述 楼梯有N阶,上楼可以一步上一阶,也可以一步上二阶. 编一个程序,计算共有多少种不同的走法. 分析与代码 走n阶楼梯,无论是走一次走1阶还是2阶,总得迈出一步, 所以求n阶楼梯 ...
- OC语言
// // main.m // 测试题05 // // Created by yang sanchao on 9/12/15. // Copyright (c) 2015 yang sanchao. ...
- 解析D-Bus服务器的地址
D-Bus 1.13.14 Main Page Related Pages Modules Data Structures Files Typedefs | Functions Address par ...
