您的位置:首页 > 其它

sphinx 搜索和更新状态两个功能使用

2013-03-24 15:08 239 查看
包括搜索和更新状态两个功能使用。
//实例化
require_once("sphinxclient.class.php");
$sphinx = new SphinxClient;
//搜索功能
$mode = SPH_MATCH_EXTENDED2;   //匹配模式
$ranker = SPH_RANK_PROXIMITY_BM25; //统计相关度计算模式,仅使用BM25评分计算
$sphinx->SetServer('127.0.0.1', '9312');
$sphinx->SetArrayResult(true);
$sphinx->SetMatchMode($mode);
$sphinx->SetRankingMode($ranker);
//过滤status字段,只显示正常帖子,不显示已删除帖子。字段要在sphinx配置为索引
$sphinx->SetFilter('status', array(0));
//过滤时间段
if($StartTime > 0)
{
$sphinx->SetFilterRange('senddate', $StartTime, time(), false);
}
//设置字段的权重
$sphinx->SetFieldWeights(array('title' => 10, 'description' => 5, 'body' => 5));
//设置排序,先按权重,再按id
$sphinx->SetSortMode( SPH_SORT_EXTENDED, "@weight DESC, @id desc" );
//分页
$limitstart = 0;
$row = 10;
$sphinx->SetLimits($limitstart, (int)$row, ($row>1000) ? $row : 1000);
//结果
$res = array();
$res = $sphinx->Query($this->Keywords." @flag !s", 'mysql, delta');
var_dump($res);

//删除索引,删除帖子时更新状态(主索引和增量索引),不让搜索时搜索出来
$sphinx->UpdateAttributes('mysql', array('status'),array($aid => array(-2)));
$sphinx->UpdateAttributes('delta', array('status'),array($aid => array(-2)));

参考:
http://sphinxsearch.com/wiki/doku.php?id=php_api_docs http://www.coreseek.cn/docs/coreseek_3.2-sphinx_0.9.9.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: