在项目搜索功能中加入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;
}