一、
1、先得包含下载的文件
include'./sphinx/api/sphinxapi.php';
$sphinx= new SphinxClient();
$sphinx->SetServer('192.168.1.139',9312);
//SPH_MATCH_ALL匹配所有查询词(默认模式)  
        $sphinx->SetMatchMode ( SPH_MATCH_ALL);  
        //匹配查询词中的任意一个  
        $sphinx->SetMatchMode ( SPH_MATCH_ANY);  
        //将整个查询看作一个词组,要求按顺序完整匹配  
        $sphinx->SetMatchMode ( SPH_MATCH_PHRASE); 
 
$data =$sphinx->Query("iOS","*"); //这里的*代表匹配所有定义好的规则,也可以写在配置文件中index对应的名称,IOS表示值
$data=$data['matches'];
        //判断键值是否存在  
        if(!array_key_exists("matches",$data)){  
            exit("没有检索到您需要的信息");  
        }  
        // 1.Matches中就是查询的结果了,但是仿佛不是我们想要的数据。  
        // 2.根据官方的说明是Sphinx并没有连接到MySQL去取数据,只是根据它自己的索引内容进行计算;  
        // 3.因此如果想用Sphinx提供的API去取得我们想要的数据,还必须以查询的结果为依据(也就是ID为依据);  
        // 4.根据ID再次查询MySQL从而得到我们想要的数据。  
        //获取主键 (这里的主键就是数据在数据库中的自增ID) 通过ID在根据数据库 查询出数据  
        $key = array_keys($data['matches']);  
        //把数组元素组合为一个字符串  
        $key = join(',',$key);  
        //根据获取到的ID在查询数据库  
        $query = new \yii\db\Query();  
        //使用框架中的in 哈希格式 来检索  
        $blogInfo = $query->from(['b'=>'ex_blog','bt'=>'ex_blog_type'])->where(['id'=>[$key]])->all();  
        //将数组转换为Json类型  
        echo json_encode($blogInfo); 
 
二、关键字变红
include'./sphinx/api/sphinxapi.php';
$sphinx= new SphinxClient();
$sphinx->SetServer('192.168.1.139',9312);
$res=$sphinx->Query("iOS","*"); //这里的*代表匹配所有定义好的规则,IOS表示值
$opt=array("before_match"=>"<font style='font-weight:bold;color:#f00'>","after_match"=></font>"); 添加一个标签
$row = 一条数据
$row =$sphinx->BuildExcerpts($row,"lg",'IOS',$opt); 替换一条,多条循环即可.。news即我们在csft_mysql.conf 配置的索引名,本实例为lg
 
 
 
!!!!!!!
做到这里以经完成了一大半,但还没有做到实时索引,假设数据库表里面的数据增加就没有办法搜索到新增的数据,这里写了一个shell脚本 main.sh
#!/bin/bash
/usr/local/coreseek/bin/inderer main --rotate >>/usr/local/coreseek/var/log/main.log
 
脚本delta.sh
#!/bin/bash
/usr/local/coreseek/bin/inderer delta --rotate >>/usr/local/coreseek/var/log/delta.log
 
然后将这两个脚本放在linux定时任务器每一分钟执行一次,代码如下
*/5 * * * * /usr/local/coreseek/init/delta.sh 00 03 * * * /usr/local/coreseek/init/main.sh
 
 
文件下载地址:https://github.com/fangwenqiang/files

最新文章

  1. ASP.NET Web API 过滤器创建、执行过程(一)
  2. Beta阶段项目终审报告
  3. C# SQLite编程总结
  4. [转载]Matlab生成Word报告
  5. 纯Shading Language绘制飞机火焰效果
  6. asp.net mvc 控制器中操作方法重载问题 解决
  7. dede 字符串截取
  8. 【转】OFBiz安全组
  9. how to Enable Client Integration
  10. 【转】 std list/vector sort 排序
  11. .NET页面301跳转处理
  12. css样式图片、渐变、相关小知识
  13. bzoj4403(模板题)
  14. 【django基础】
  15. Hibernate主键自增策略
  16. MUST_COMPLETE
  17. noi.acNOIP模拟赛5-count
  18. Object 类的equals方法
  19. 【转载】C++资源之不完全导引
  20. Jquery实战——横纵向的菜单

热门文章

  1. HDU1712:ACboy needs your help(分组背包)
  2. Linux基础以及简单命令
  3. java线程小结1
  4. 转:css中!important的作用
  5. PL/SQL编程—变量
  6. 用cmd运行php代码、socket
  7. J2EE--Struts2基础开发笔记
  8. React Native之Fetch简单封装、获取网络状态
  9. Linux下解压分包文件zip(zip/z01/z02)【转】
  10. CentOS 7 源码安装Ansible 2.x