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

包括搜索和更新状态两个功能使用。
//实例化   
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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值