一、sphinx的基本介绍
1、使用背景
当对大文本数据进行单词匹配查询时,如:有一个歌曲网站,数据库中
收集着上百万首歌曲的信息,如果要查询出歌词中带“爱情”的所有歌
曲,典型的做法是执行如下SQL语句:
SELECT * FROM songs WHERE content LIKE "%爱情%"。
但是在MYSQL中以%开头的查询无法使用索引,所以这条SQL语句将执
行全表扫描,性能极差。MyISAM引擎中的全文索引是专门对文本创建
索引的,但对中文的支持不好。
好的解决方案:使用sphinx !
2、sphinx的原理
第一步:对应数据源建立索引
中文分词技术,
今天 1
下雨 1
明天 1,2,3
学习 2
第二步:执行查询,返回查询到单词所在,mysql里面记录的id
php要把查询的单词给sphinx软件,软件拿到要查询的单词后,从索引里面进行匹配。返回该单词在mysql表里面记录的id
php拿到单词所在的额id后,根据该id去mysql里面查找数据。
3、什么是Coreseek
Coreseek 是一款中文全文检索/搜索软件,基于Sphinx研发并独立发布,
专攻中文搜索和信息处理领域,适用于行业/垂直搜索、论坛/站内搜索
数据库搜索、文档/文献检索、信息检索、数据挖掘等应用场景