Sphinx工作原理
Sphinx 主要由2个进程:indexer.exe,searchd.exe
Indexer.exe从数据库收集原始数据,然后建立相应的索引
Searchd通过索引来响应客户端的请求
通过sphinx提供的Api来搜索数据,返回相应的数据主键
Sphinx使用
1、创建数据,数据库相应的表数据
2、建立sphinx配置文件
3、Indexer.exe进程生成索引
4、Searchd.exe进程启动sphinx服务
5、调用sphinx提供的api
实例:
require(“sphinxapi.php”); //加载类文件 $sph=new SphinxClient(); //实例化类 $sph->SetServer(‘localhost’,9312); //设置服务 $sph->SetArrayResult(true); //设置 显示结果集方式 $sph->SetLimits(0,10); //同 sql语句中的LIMIT $sph->SetSortMode(“mode”); //排序模式 SPH_SORT_ATTR_DESC和 $result=$sph->Query(‘关键字’,$index); //执行搜索
注意事项:
1、修改sphinx.conf文件后,需要重新建立索引,查询才会生效,
2、所谓的全文索引查找,就是在setfilter后(相当于sql的where条件),q uery('content','index‘);
(1):content代表要查询的文字。(2):index是建立的要查询的索引 找到匹配的结果。
3、使用Api从sphinx执行了一个查询之后,接口会返回一个数组。在这个数组中存在total_found和total两个值。
当查询出的结果数小于sphin中配置的最大返回结果数(默认为1000)时,这两个值是相等的。
而查询出的结果数大于sphin中配置的最大返回结果数(默认为1000)时,total_found的值是在sphinx中所有满足搜索条件的结果数,而total返回的是sphin中配置的最大返回值。
因此,在分页等需要所有满足搜索条件的结果数的时候,应该使用total_found的值。