通过sphinx给项目搜索结果标题添加高亮

在项目搜索功能中加入shpinx查询数据

$needSeach=isset($_GET['jq'])?$_GET['jq']:'';
$title= isset($_GET['title'])?$_GET['title']:'';
//使用sphinx查询
if(!empty($needSeach)||!empty($title)){
    
    //加载sphinxAPI
    require './sphinxapi.php';
    //实例化sphinx客户端new SphinxClient()
    $sp = new SphinxClient();
    //设置setServer()
    $sp ->SetServer('localhost',9312);
    //设置匹配模式
    $sp ->SetMatchMode(SPH_MATCH_EXTENDED);
    //设置查询结果记录总数setLimits(start,end)
    $sp ->SetLimits(0, 25);
    $res=$sp ->Query("@title {$title}",'mymovie');
    //将查询到的id连接到条件中;
    $id_string=implode(',',array_keys($res['matches']));
}
//采用like 加百分号开头 并未使用到索引,如果数据量大势必会影响网站的效率
$where = "AND ar.id IN(".$id_string.")";

查询关键词显示高亮

$data= array();
while ($row=$dsql -> getArray('me')){
    //处理title字段,通过BuildExcerpts处理文档 
    //第一个参数 从数据库中取出来的数据
    //第二个参数 配置的索引名
    //第三个参数 搜索的关键词
    //第四个参数 不是必须的,
    $_row=$sp ->BuildExcerpts(array($row['title']), 'mymovie', $title,
   array('before_match'=>"<span style='color:red'>",
        'after_match'=>"</span>",
        ));
    
    $row['arcurl']=GetFileUrl($row['id'],$row['typeid'],$row['senddate'],$row['title'],$row['ismake'],
     $row['arcrank'],$row['namerule'],$row['typedir'],$row['money'],$row['filename'],$row['moresite'],$row['siteurl'],$row['sitepath']);
    //经过处理的title替换掉row中的title
    $row['title']=$_row[0];
    $data[] = $row;
}


转载于:https://my.oschina.net/osmyblog/blog/311536

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值