sphinx 全文搜索引擎
sphinx的安装与配置
---------------------------------------------------------------------------------------------
SQL 结构化查询语言(是一种标准,所有的关系型数据库Mysql,sqlserver,oracle)
sphinx的使用两种方式:
第一种: 使用sphinx的API来操作sphinx (常用)
sphinx可以使用API类,也可以将api编译到PHP中做为扩展
第二种: 使用mysql的sphinx的存储引擎
sphinx 这是英文的全文检索引擎
coreseek 这是支持中文词库的全文检索引擎
区别:
英文的文章 怎么能区分哪个词 以空格来区分词的
中文的文章 我爱北京* 中文词库
使用sphinx的步骤:
1、安装
cd E:/usr/local/coreseek-3.2.14-win32
2、配置(配置文件 csft_mysql.conf)
配置文件格式
1、数据源定义 (指向你数据的来源 ,通常是mysql)
2、索引 (索引的一些配置信息)
3、indexer (内用的内存---基本不需要设置)
4、searchd (服务器的一些配置---)
注意:
1、一个配置文件可以配置多个数据源和索引 ((1,2),(1,2),nnnn)
2、sql_query 主查询(把数据库表中的哪些字段查询出来--根据你页面的搜索条件)
select 第一个字段(一定是主键)
3、indexer.exe -c 配置文件 --all(参数--all 表示创建全部索引)
.\bin\indexer.exe -c .\etc\csft_mysql.conf --all
4、启动searchd 服务 searchd.exe -c 配置文件
.\bin\searchd.exe -c .\etc\csft_mysql.conf
5、php 操作sphinx
------------------------------------------------------------------------------------------
sphinx搜索引擎如何引用在Yii 框架中
先安装测试好 就 不用我多说了吧!
下面配置一下 csft_mysql.conf 配置文件,进行数据库配置
在vendor目录下创建一个文件夹sphinx 然后把sphinxapi.php放入文件夹中
在公共文件的配置文件中的任意一个(如:bootstrap.php)写入下面这句话
或者是在要用到sphinx的控制器的顶部或方法里写入 也行
Yii::$classMap['SphinxClient']="@vendor/sphinx/sphinxapi.php";
在控制器的顶层写上命名空间
use SphinxClient;
在控制的方法中实例化对象
如:
$cl = new SphinxClient ();
$cl->SetServer ( '127.0.0.1', 9312);
$cl->SetConnectTimeout ( 3 );
$cl->SetArrayResult ( true );
$cl->SetMatchMode ( SPH_MATCH_ANY);
$res = $cl->Query ( '国外', "*" );
//print_r($cl);
print_r($res);
然后查到的索引的 id ,运用查到的id 来查询数据库中有关搜索的数据
将查到的数据 传到 views 视图里,遍历出来 ,这就是sphinx在Yii框架中的简单应用