一.sphinx

  1. 介绍
    sphinx本身是一个中文检索索引技术

mysql索引: 主键、唯一、普通、全文(match/agaisnt)

sphinx是俄罗斯人开发一款速度、效率非常高的索引技术

sphinx是来替代mysql全文索引的

mysql本身的全文索引技术特性表现一般,一般数据库使用全文索引都不是使用本身的,都需要借助第3方索引技术支持,php->mysql->sphinx , java->oracle->lucene

搜索引擎(百度/google等)要大量使用“检索技术”

sphinx使用的好处:

① 快速检索用户需要的模糊信息(替代like使用)

② 本身还有中文“分词”的实现,英文分词通过”空格”区分,中文分词通过技术实现(例如”匹配”,使用习惯)

2.使用sphinx

sphinx coreseek的安装和php下使用_数据库

sphinx coreseek的安装和php下使用_sql_02

下载sphinx功能包
具体是下载coreseek:中文+sphinx

也可以直接下载sphinx

解压压缩文件到软件的运行目录即可,路径不能有中文

sphinx coreseek的安装和php下使用_sql_03


为数据库数据创建索引文件

做索引配置

sphinx.conf

source article
{
type = mysql
sql_host = localhost
sql_user = root
sql_pass = root
sql_db = csdn
sql_port = 3306

sql_query = SELECT id, title, description FROM article
sql_query_pre = SET NAMES utf8
}



index article
{
source = article
path = D:/coreseek/var/data/test1
docinfo = extern
morphology = none
stopwords =
charset_type = utf-8
charset_dictpath = D:/coreseek/etc/
ngram_len = 1
ngram_chars=U+3000..U+2FA1F
}



indexer
{
mem_limit = 32M
}

searchd
{
port = 9312
log = D:/coreseek/var/log/searchd.log
query_log = D:/coreseek/var/log/query.log
read_timeout = 5
max_children = 30
pid_file = D:/coreseek/var/log/searchd.pid
max_matches = 1000
}

创建索引的执行程序文件
软件目录/bin/indexer.exe

第一步:使用管理员权限的cmd

命令:indexer.exe -c 配置文件路径 source名称

sphinx coreseek的安装和php下使用_sphinx_04


第二步:查看索引文件

sphinx coreseek的安装和php下使用_sphinx_05


使用sphinx

第一步:安装sphinx服务

使用管理员cmd执行以下命令

searchd.exe --install -c 配置文件路径 参数顺序一定要不能颠倒。

sphinx coreseek的安装和php下使用_数据库_06


第二步:查看并启动sphinx查询服务

sphinx coreseek的安装和php下使用_sql_07


状态一定要是已启动,不然链接不上

如果安装服务之后,不能够正常启动服务,可能就是安装的时候,参数顺序不对。卸载重装

searchd.exe --delete删除服务

php连接sphinx,进行内容模糊检索查询:

sphinx coreseek的安装和php下使用_sql_08


可以引入这个文件,或者直接在php开启spinx拓展

sphinx coreseek的安装和php下使用_sql_09


我是直接拷贝到thinkphp5控制器中在另一个控制器方法中使用

通过sphinx查询到数据的主键id,之后就可以使用主键id直接去数据库查询具体数据了,因为主键id查询快速,所以不会影响到用户的使用体验。

sphinx coreseek的安装和php下使用_php_10


查询的速度非常快4毫秒