sphinx多条件搜索


1、sphinx多条件搜索创建索引、开启搜索服务,以下是我创建的表单,option标签的value微数据库字段

搜索字段:

作者:


2、然后将coreseek中的csft_mysql.conf类方法yii框架的 yii\vendor\composer\ 下

在yii\vendor\autoload.php中添加

require_once __DIR__ . '/composer' . '/sphinxapi.php';

让其自动加载,如下

3、
在控制器中引用,然后编辑,如下,如果打印出数据库数据,就是成功了
public function actionSphinx(){
	$data=Yii::$app->request->post(); 
        $sphinx= new SphinxClient(); //实例化sphinx    
        $sphinx->SetServer('127.0.0.1',9312);//创建链接,9312微端口号
        $sphinx->SetMatchMode ( SPH_MATCH_EXTENDED2 ); 
        if ($data['set']==1) {
         	$key=$data['value'];
         }else{
         	$key='@'.$data['set'].' '.$data['value'];
         }
         //echo $key;die;
        $res=$sphinx->Query($key,"mysql");
        $id=implode(',', array_keys($res['matches'])) ;//取到结果的ID,拼接字符串 
        $where="id in ($id)";
        $arr= Search::find()->where($where)->asArray()->all(); 
        print_r($arr);die;   
}
注意多条件查询,还要实例化一个类
 $sphinx->SetMatchMode ( SPH_MATCH_EXTENDED2 ); 
其中$key的格式为"@字段名  值"。

你可能感兴趣的:(Sphinx)