yii 框架 的sphinx类引入 使用 及 关键字标红

yii框架引入sphinx类 及使用

1.在yii框架 根目录下建立 文件夹 sphinx

2.把sphinxapi.php放到sphinx文件中

3.在config/web.php文件中加入一句话
Yii::$classMap['SphinxClient']='@app/sphinx/sphinxapi.php';
4.控制器调用sphinx类
$sphinx= new \SphinxClient();

5.链接sphinx
$sphinx->SetServer('127.0.0.1', 9312);
6.设置查询模式查询出结果
//根据某个字段进行查询模式
$sphinx->SetMatchMode ( SPH_MATCH_EXTENDED2 );

$result = $sphinx->query('@title 你好', "*");//‘title’ 字段名     ‘你好’关键字

//根据全部字段进行查询

//$sphinx-> SetMatchMode(SPH_MATCH_ANY);//搜索             
//$sphinx -> SetSortMode(SPH_SORT_EXTENDED, '@id desc'); //排序
//$result = $sphinx-> Query($name,"*");

7.根据查询出的id查出数据库中的数据
$id=implode(',',array_keys($result['matches']));
$search=Search::find()->where('id in ('.$id.')')->asArray()->all();

print_r($search);

yii框架关键字标红
8.运用sphinx里的
BuildExcerpts属性('从数据库查询出来的东西必须为一维数组','索引名字我这里是 (mysal)','收索的关键字','标红的一个方法,我这里定义的是$opts')
9.具体的做法
//定义标红方法

$opts = array('before_match'=>'<font style="font-weight:bold;color:red">','after_match'=>'</font>'); 

//循环标红

foreach($search as $v){

    $res=$sphinx->BuildExcerpts($v,'mysql','你好',$opts);// "mysql" 我的索引名   “你好”要标红的关键字;

}

print_r($res);


这时你就会发现输出的数组中关键字已经标红了;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值