sphinx搜索json格式方式

<sphinx:document id="511521599500">
        <db_table_id>511521599500</db_table_id>
        <open_id></open_id>
        <headimgurl></headimgurl>
        <seller_id>w18151</seller_id>
        <nickname></nickname>
        <payment>0.00</payment>
        <order_num>0</order_num>
        <attention_status></attention_status>
        <sex>3</sex>
        <masscount>0</masscount>
        <area></area>
        <interaction_time></interaction_time>
        <attention_time></attention_time>
        <cancel_attention_time></cancel_attention_time>
        <continuous_active_day>0</continuous_active_day>
        <sum_active_day>0</sum_active_day>
        <service_remarks>3</service_remarks>
        <nopay_order_num>0</nopay_order_num>
        <first_order_time>0</first_order_time>
        <end_order_time>0</end_order_time>
        <pay_time></pay_time>
        <user_id>wx21599500</user_id>
        <plat_type>5</plat_type>
        <user_from>wx</user_from>
        <level>0</level>
        <exsit_label>{"e":1,"a":1}</exsit_label>
        <exsit_label_qiu>{"a": [1,4],"t": ["t1","t2","t3"]}</exsit_label_qiu>
        <exsit_label_hui>|1,2,3,4,5,6|</exsit_label_hui>
        <wxcard_label_str>|'a','t'|</wxcard_label_str> 
        
</sphinx:document>
<sphinx:document id="511521600104">
        <db_table_id>511521600104</db_table_id>
        <open_id></open_id>
        <headimgurl></headimgurl>
        <seller_id>w18151</seller_id>
        <nickname></nickname>
        <payment>0.00</payment>
        <order_num>0</order_num>
        <attention_status></attention_status>
        <sex>3</sex>
        <masscount>0</masscount>
        <area></area>
        <interaction_time></interaction_time>
        <attention_time></attention_time>
        <cancel_attention_time></cancel_attention_time>
        <continuous_active_day>0</continuous_active_day>
        <sum_active_day>0</sum_active_day>
        <service_remarks>3</service_remarks>
        <nopay_order_num>0</nopay_order_num>
        <first_order_time>0</first_order_time>
        <end_order_time>0</end_order_time>
        <pay_time></pay_time>
        <user_id>wx21600104</user_id>
        <plat_type>5</plat_type>
        <user_from>wx</user_from>
        <level>0</level>
        <exsit_label>{"a":1}</exsit_label>
        <exsit_label_qiu>{"c": [1,2,3,4],"d": ["t1","t2","t3"]}</exsit_label_qiu>
        <exsit_label_hui>|1,2,3,4,5,6|</exsit_label_hui>
         <wxcard_label_str>|'c','d'|</wxcard_label_str> 
</sphinx:document>   
<sphinx:document id="511521600105">
        <db_table_id>511521600105</db_table_id>
        <open_id></open_id>
        <headimgurl></headimgurl>
        <seller_id>w18151</seller_id>
        <nickname></nickname>
        <payment>0.00</payment>
        <order_num>0</order_num>
        <attention_status></attention_status>
        <sex>3</sex>
        <masscount>0</masscount>
        <area></area>
        <interaction_time></interaction_time>
        <attention_time></attention_time>
        <cancel_attention_time></cancel_attention_time>
        <continuous_active_day>0</continuous_active_day>
        <sum_active_day>0</sum_active_day>
        <service_remarks>3</service_remarks>
        <nopay_order_num>0</nopay_order_num>
        <first_order_time>0</first_order_time>
        <end_order_time>0</end_order_time>
        <pay_time></pay_time>
        <user_id>wx21598290</user_id>
        <plat_type>5</plat_type>
        <user_from>wx</user_from>
        <level>0</level>
        <exsit_label>{"b":1,"a":1}</exsit_label>
        <exsit_label_qiu>{"a": [1,3,4],"t": ["t1","t2","t3"]}</exsit_label_qiu>
         <exsit_label_hui>|1|</exsit_label_hui>
          <wxcard_label_str>|1,2|</wxcard_label_str> 
</sphinx:document>
<sphinx:document id="511521600106">
        <db_table_id>511521600106</db_table_id>
        <open_id></open_id>
        <headimgurl></headimgurl>
        <seller_id>w18151</seller_id>
        <nickname></nickname>
        <payment>0.00</payment>
        <order_num>0</order_num>
        <attention_status></attention_status>
        <sex>3</sex>
        <masscount>0</masscount>
        <area></area>
        <interaction_time></interaction_time>
        <attention_time></attention_time>
        <cancel_attention_time></cancel_attention_time>
        <continuous_active_day>0</continuous_active_day>
        <sum_active_day>0</sum_active_day>
        <service_remarks>3</service_remarks>
        <nopay_order_num>0</nopay_order_num>
        <first_order_time>0</first_order_time>
        <end_order_time>0</end_order_time>
        <pay_time></pay_time>
        <user_id>wx21599500</user_id>
        <plat_type>5</plat_type>
        <user_from>wx</user_from>
        <level>0</level>
        <exsit_label>{"e":1,"a":1}</exsit_label>
         <exsit_label_qiu>{"a": [2,3,4],"t": ["t1","t2","t3"]}</exsit_label_qiu>
          <exsit_label_hui>|3,4,5,6|</exsit_label_hui>
           <wxcard_label_str>|5,6|</wxcard_label_str> 
</sphinx:document>
<sphinx:document id="511521600107">
        <db_table_id>511521600107</db_table_id>
        <open_id></open_id>
        <headimgurl></headimgurl>
        <seller_id>w18151</seller_id>
        <nickname></nickname>
        <payment>0.00</payment>
        <order_num>0</order_num>
        <attention_status></attention_status>
        <sex>3</sex>
        <masscount>0</masscount>
        <area></area>
        <interaction_time></interaction_time>
        <attention_time></attention_time>
        <cancel_attention_time></cancel_attention_time>
        <continuous_active_day>0</continuous_active_day>
        <sum_active_day>0</sum_active_day>
        <service_remarks>3</service_remarks>
        <nopay_order_num>0</nopay_order_num>
        <first_order_time>0</first_order_time>
        <end_order_time>0</end_order_time>
        <pay_time></pay_time>
        <user_id>wx21600104</user_id>
        <plat_type>5</plat_type>
        <user_from>wx</user_from>
        <level>0</level>
        <exsit_label>{"a":1,"e":1}</exsit_label>
         <exsit_label_qiu>{"a": [1,5],"t": ["t1","t2","t3"]}</exsit_label_qiu>
          <exsit_label_hui>|1,2,3|</exsit_label_hui>
           <wxcard_label_str>|7,8|</wxcard_label_str> 
</sphinx:document>
<sphinx:document id="511521598290">
        <db_table_id>511521598290</db_table_id>
        <open_id></open_id>
        <headimgurl></headimgurl>
        <seller_id>w18151</seller_id>
        <nickname></nickname>
        <payment>0.00</payment>
        <order_num>0</order_num>
        <attention_status></attention_status>
        <sex>3</sex>
        <masscount>0</masscount>
        <area></area>
        <interaction_time></interaction_time>
        <attention_time></attention_time>
        <cancel_attention_time></cancel_attention_time>
        <continuous_active_day>0</continuous_active_day>
        <sum_active_day>0</sum_active_day>
        <service_remarks>3</service_remarks>
        <nopay_order_num>0</nopay_order_num>
        <first_order_time>0</first_order_time>
        <end_order_time>0</end_order_time>
        <pay_time></pay_time>
        <user_id>wx21598290</user_id>
        <plat_type>5</plat_type>
        <user_from>wx</user_from>
        <level>0</level>
        <exsit_label>{"b":1}</exsit_label>
        <exsit_label_qiu>{"a": [1,2,3,4],"t": ["t1","t2","t3"]}</exsit_label_qiu>
         <exsit_label_hui>|1,6|</exsit_label_hui>
         <wxcard_label_str>|'a','t1'|</wxcard_label_str> 

</sphinx:document>
 

<?php
/**
  * sphinx组装搜索客户列表类
  * @author putin
  */
class Searchdatatest{
   private  $host;
   private  $port;
   private  $indexname;
   private  $cl;
   private  $logpath='/data/www/dianking/egoushop/log/sphinxqiu.txt';
   public function __construct()
   {
       $this->cl = new SphinxClient();
       
   }
   public   function  setHost($host){
       if($host){
           $this->host=$host;
       }
       else {
           $this->host=PublicFun::getConfigValue('sphinxsearch','host');
       }
   }
   public   function  setPort($port){
       if($port){
           $this->port=$port;
       }
       else {
         
           $this->port=PublicFun::getConfigValue('sphinxsearch','port');
       }
        
   }
   public   function  setIndexName($indexname){
       if($indexname){
           $this->indexname=$indexname;
       }
   }
   public    function array_remove($data, $key){
       if(!array_key_exists($key, $data)){
           return $data;
       }
       $keys = array_keys($data);
       $index = array_search($key, $keys);
       if($index !== FALSE){
           array_splice($data, $index, 1);
       }
       return $data;
        
   }
    /**
     * 作者:
     * 时间:2016-06-28
     * 功能:组合大数据的生成,进行搜索
     * @param string $seller_id   商家id
     * @param array $data     
     *  $data=array(
            array('key'=>'seller_id','value'=>'w132'),
            array('key'=>'sex','value'=>3), 
            array('key'=>'','value'=array('min'=>1,'max'=>5),'type'=>1)// 结果 1<=x<=5 [1,5]
            array('key'=>'','value'=array('min'=>1,'max'=>5),'type'=>0)// 结果 [1,5] 的反区间    
            array('key'=>'end_order_time','value'=>1464359259) 
            array('key'=>'exsit_label_hui','value'=>array(2),'type'=>1)                                                        // 比如标签 多值    0:模糊反选 1 精确正选   2 :模糊正选
        );    
     * @param array $sort
     *  $sort=array(
            array('key'=>'end_order_time','value'=>2),  
            array('key'=>'user_id','value'=>2),
        );  // 1 :降序  2:升序   
     * @param int $pageindex   当前页码
     * @param int $dividenum   每页多少条
     * @param string  类 sql 语句  比如  "*, AVG(price) AS avgprice"   ,  "*, @weight+(user_karma+ln(pageviews))*0.1 AS myweight"
     */
    public  function  sphinxData($seller_id,$data,$sort,$pageindex,$dividenum,$selectSql){
        $log= date('Y-m-d H:i:s',time()).'--' 
            .$seller_id.'--'.json_encode($data).'--'.json_encode($sort).'--'.$pageindex.'--'.$dividenum."\n";
        file_put_contents($this->logpath,$log,FILE_APPEND);
        $this->cl->ResetFilters ();
        $this->cl->ResetGroupBy();
        $this->cl->ResetOuterSelect();
        $this->cl->ResetOverrides();
        $this->cl->ResetQueryFlag();
        if(!($this->host )){
            $msg=array( 'errcode'=>1,'errmsg'=>'主机为空');
            return $msg;
            exit();
        }
        if(!($this->port )){
            $msg=array( 'errcode'=>1,'errmsg'=>'端口号为空');
            return $msg;
            exit();
        }
        if(!($this->indexname )){
            $msg=array( 'errcode'=>1,'errmsg'=>'数据源索引为空');
            return $msg;
            exit();
        }
        
        if(intval($pageindex)>0){
            $pageindex=intval($pageindex);
        }
        else {
            $pageindex=1;
        }
        if (intval($dividenum)>0){
            $dividenum=intval($dividenum);
        }
        else {
            $dividenum=20;
        }
        $startlimit=($pageindex-1)*$dividenum;
        $endlimit=$pageindex*$dividenum;
        $this->cl->SetServer ( $this->host, $this->port );
        $this->cl->SetConnectTimeout ( 1 );
        $this->cl->SetArrayResult ( true );
        $this->cl->SetMatchMode (SPH_MATCH_EXTENDED2);
        $this->cl->SetIDRange(0,0);
        $this->cl->SetLimits($startlimit,$dividenum,$endlimit);
        $attrarr=array();
        $filedarr=array();
        for ($i=0;$i<count($data);$i++){
             $value= $this->getFiledAttr(trim($data[$i]["key"]));
             $searchtype=$data[$i]["type"];
             if($searchtype===NULL){
                 $searchtype=1;
             }
             else if(intval($searchtype)>=0) {
                  $searchtype=intval($searchtype);
             }
              else{
                  $searchtype=1;
             }
              switch ($searchtype){
                  case 0:$searchstatus=true;break;
                  case 1:$searchstatus=false;break;
                  default:$searchstatus=false;break;
              }
             if($value){
                 switch ($value["AF"]){
                     case 'F':    // filed
                                  switch ($value["type"]["type"]){
                                      case 'string': if(is_array($data[$i]["value"])){
                                                         $temp='';
                                                         for($j=0;$j<count($data[$i]["value"]);$j++){
                                                             
                                                             if($data[$i]["value"][$j]===''){
                                                                 continue;
                                                             }
                                                             if ($j==count($data[$i]["value"])-1){
                                                                 $temp=$temp.'"'.$data[$i]["value"][$j].'"';
                                                             }
                                                             else{
                                                                
                                                                 $temp=$temp.'"'.$data[$i]["value"][$j].'"'.'|';
                                                             }
                                                         }
                                                         $keycon='@'.$data[$i]["key"].'='.$temp.'';
                                                     }
                                                     else{
                                                             $keycon='@'.$data[$i]["key"].'="'.$data[$i]["value"].'"';
                                                     }
                                                     break;
                                      case 'int': if(is_array($data[$i]["value"])){
                                                         $temp='';
                                                         for($j=0;$j<count($data[$i]["value"]);$j++){
                                                             
                                                             if($data[$i]["value"][$j]===''){
                                                                 continue;
                                                             }
                                                             if ($j==count($data[$i]["value"])-1){
                                                                 $temp=$temp.intval($data[$i]["value"][$j]);
                                                             }
                                                             else{
                                                                
                                                                 $temp=$temp.intval($data[$i]["value"][$j]).'|';
                                                             }
                                                         }
                                                         $keycon='@'.$data[$i]["key"].'='.$temp.'';
                                                     }
                                                     else{
                                                             $keycon='@'.$data[$i]["key"].'='.intval($data[$i]["value"]).'';
                                                     }
                                                     break;
                                      case 'float':if(is_array($data[$i]["value"])){
                                                         $temp='';
                                                         for($j=0;$j<count($data[$i]["value"]);$j++){
                                                             
                                                             if($data[$i]["value"][$j]===''){
                                                                 continue;
                                                             }
                                                             if ($j==count($data[$i]["value"])-1){
                                                                 $temp=$temp.floatval($data[$i]["value"][$j]);
                                                             }
                                                             else{
                                                                
                                                                 $temp=$temp.floatval($data[$i]["value"][$j]).'|';
                                                             }
                                                         }
                                                         $keycon='@'.$data[$i]["key"].'='.$temp.'';
                                                     }
                                                     else{
                                                             $keycon='@'.$data[$i]["key"].'='.floatval($data[$i]["value"]).'';
                                                     }
                                                     break; 
                                      case 'json':
                                                   
                                                     $keycon='@'.$data[$i]["key"].'='.$data[$i]["value"].'';
                                                  
                                                     break;
                                      default:break;
                                  }
                                  if($keycon){
                                      array_push($filedarr,$keycon);
                                  }
                              break;
                     case 'A':// attr
                              switch ($value["type"]["type"]) {
                                  case 'string':
                                               $log= date('Y-m-d H:i:s',time()).'--'  .$data[$i]["key"].'--'.$data[$i]["value"].'--'.$searchstatus."\n";
                                               file_put_contents($this->logpath,$log,FILE_APPEND);
                                               $this->cl->SetFilterString($data[$i]["key"], $data[$i]["value"],$searchstatus);
                                               break;
                                  case 'int':  
                                               if(is_array($data[$i]["value"])){
                                                   switch ($value["type"]["style"]){
                                                       case 'single' :$this->cl->SetFilter($data[$i]["key"], intval($data[$i]["value"]),$searchstatus);break;
                                                       case 'range'  : 
                                                                       $min=intval($data[$i]["value"]["min"]);
                                                                       $max=intval($data[$i]["value"]["max"]);
                                                                       $this->cl->SetFilterRange($data[$i]["key"], $min, $max,$searchstatus);break;
                                                       case 'multi':
                                                                       for($j=0;$j<count($data[$i]["value"]);$j++)
                                                                       {
                                                                           $data[$i]["value"][$j] = intval($data[$i]["value"][$j]);
                                                                       }
                                                                       $this->cl->SetFilter($data[$i]["key"], $data[$i]["value"],$searchstatus);break;
                                                       default:break;  
                                                   }
                                               }
                                               else{
                                                   $this->cl->SetFilter($data[$i]["key"], array(intval($data[$i]["value"])),$searchstatus);
                                               }
                                               break;
                                  case 'float':
                                              if(is_array($data[$i]["value"])){ 
                                                 switch ($value["type"]["style"]){
                                                       case 'single' :
                                                                       $this->cl->SetFilter($data[$i]["key"], floatval($data[$i]["value"]),$searchstatus);break;
                                                       case 'range'  : 
                                                                       $min=floatval($data[$i]["value"]["min"]);
                                                                       $max=floatval($data[$i]["value"]["max"]);
                                                                       $d=$data[$i]["key"]. $min. $max.'--'.$searchstatus.'--'.$searchtype.'--'.json_encode($data,JSON_UNESCAPED_UNICODE);
                                                                       $this->cl->SetFilterFloatRange($data[$i]["key"], $min, $max,$searchstatus);break;
                                                       case 'multi':
                                                                       for($j=0;$j<count($data[$i]["value"]);$j++)
                                                                       {
                                                                       $data[$i]["value"][$j] = intval($data[$i]["value"][$j]);
                                                                       }
                                                                       $this->cl->SetFilter($data[$i]["key"], $data[$i]["value"],$searchstatus);break;
                                                       default:break;  
                                                   }
                                              }
                                              else{
                                                  $this->cl->SetFilter($data[$i]["key"], array(floatval($data[$i]["value"])),$searchstatus);
                                              }
                                              break;   
                                  case 'json': 
                                              
                                              switch ($value["type"]["style"]){
                                                  case 'single' :
                                                                  if(is_array($data[$i]["value"])){
                                                                      foreach ($data[$i]["value"] as $key=>$value){
                                                                          $this->cl->SetFilter($data[$i]["key"].'.'.$key,array($value),$searchstatus);
                                                                      }
                                                                  }
                                                                break;
                                                  case 'multi': 
                                                                  foreach ($data[$i]["value"] as $key=>$value){
                                                                 
                                                                      $this->cl->SetFilter($data[$i]["key"].'.'.$key,$value,$searchstatus);
                                                                  }
                                                                break;
                                                  default:break;
                                              }
                                                  
                                                  break;
                                                  
                                  case 'multi':   
                                                 if(is_array($data[$i]["value"])){
                                                  switch ($data[$i]["type"]){
                                                      case 0: 
                                                            $this->cl->SetFilter($data[$i]["key"],$data[$i]["value"],true);
                                                            break;                       //模糊 反选
                                                      case 1:  
                                                            for ($j=0;$j<count($data[$i]["value"]);$j++){
                                                            $this->cl->SetFilter($data[$i]["key"],array($data[$i]["value"][$j]),false);
                                                            }
                                                            break;                       // 精确 正选
                                                      case 2: 
                                                            $this->cl->SetFilter($data[$i]["key"],$data[$i]["value"],false); //模糊 正选
                                                            break;    
                                                      case 3:                  
                                                            for ($j=0;$j<count($data[$i]["value"]);$j++){
                                                                  $this->cl->SetFilter($data[$i]["key"],array($data[$i]["value"][$j]),true);
                                                            }
                                                            break;
                                                      default:break;
                                   
                                                  }
                                                 }
                                                 else {
                                                     $this->cl->SetFilter($data[$i]["key"],array($data[$i]["value"]),$searchstatus);
                                                 }
                                  default:break;
                              }  
                              break;
                     default:break; 
                 }
             }
             else{
                 continue;
             }  
        }
        // key 条件的进行 记录。
        $query='';
        for ($m=0;$m<count($filedarr);$m++){
             if($m==count($filedarr)-1){
                 $query=$query.$filedarr[$m];
             }
             else{
                 $query=$query.$filedarr[$m].' &  ';
             }
        }
        // $query='@area = "广东"  ';
        // 关于 排序 的进行 组装 ,
        $sortarr=$this->getSortFields();
        $sortstr='';
        foreach ($sort as $key => $sortsingle){
             if(in_array($sortsingle["key"], $sortarr)){
                 switch (intval($sortsingle["value"])){
                     case 1:$str= $sortsingle["key"].' DESC ';
                     break;
                 case 2:    $str= $sortsingle["key"].' ASC ';
                     break;
                     default: $str='';break;
                 }
                 $sortstr= $sortstr.$str;
             }
             else{
                continue;
             }
        } 
        if(trim($sortstr)!=''){
            $this->cl->SetSortMode(SPH_SORT_EXTENDED,$sortstr);
        }
        $log= date('Y-m-d H:i:s',time()).'--'.$seller_id.'--查询'.$query.$this->indexname."\n";
        file_put_contents($this->logpath,$log,FILE_APPEND);
        if($selectSql){
            $this->cl->SetSelect($selectSql);
        }
        $result=$this->cl->Query($query,$this->indexname);
        if($result===false){
            $lastdata=array();
            $totalnum=0;  
            $msg=array('errcode'=>1,'data'=>$lastdata);
        }
        else {
            if($result["matches"]){
                foreach ( $result["matches"] as $docinfo )
                {
                    $cid = $docinfo["id"];
                    $res_tmp = $docinfo["attrs"];
                    $lastdata[$cid] = $res_tmp;
                }
                $totalnum=$result["total_found"];
                $msg=array('errcode'=>0,'data'=>$lastdata);
            }
            else {
                $lastdata=array();
                $totalnum=0;
                $msg=array('errcode'=>0,'data'=>$lastdata);
            }
        }
        $log= date('Y-m-d H:i:s',time()).'--'.$seller_id.'--总数'.$totalnum."\n";
        file_put_contents($this->logpath,$log,FILE_APPEND);
        $page= new Page();
        $pageinfo=$page->getPage($pageindex, $totalnum, $dividenum); 
        $msg["page"]=$pageinfo;
        $msg["msg"]=$result["warning"]; 
        $msg["ceshi"]=$d;
        return $msg;
    } 
    private  function  getSortFields(){
        $sortarr=array(
            'sum_active_day',
            'interaction_time',
            'attention_time',
            'order_fee',
            'order_num',
            'nopay_order_num',
            'first_order_time',
            'end_order_time',
            'pay_time',
            'continuous_active_day'
        );
         return $sortarr; 
    }
    private  function  getFiledAttr($str){
       $fields=array(
           'nickname'=>array('type'=>'string','style'=>'single'),
           'area'=>array('type'=>'string','style'=>'multi'),
           'service_remarks'=>array('type'=>'string','style'=>'single')
           );
       $attrs=array(
           'is_show'=>array('type'=>'int','style'=>'single'),
           'pay_credit'=>array('type'=>'int','style'=>'range'),
           'used_credit'  =>array('type'=>'int','style'=>'range'),  
           'history_credit'=>array('type'=>'int','style'=>'range'),
           'last_active_time'=>array('type'=>'int','style'=>'range'),
           'guest_unit_price'=>array('type'=>'float','style'=>'range'),
           'level'=>array('type'=>'string','style'=>'single'),
           'exsit_label_qiu'=>array('type'=>'json','style'=>'multi'),
           'exsit_label_hui'=>array('type'=>'multi','style'=>'multi'),
           'exsit_label'=>array('type'=>'multi','style'=>'multi'),
           'wxcard_label_str'=>array('type'=>'multi','style'=>'multi'),
           'headimgurl'=>array('type'=>'string','style'=>'single'),
           'user_from'=>array('type'=>'string','style'=>'single'),
           'sum_active_day'=>array('type'=>'int','style'=>'multi'),
           'plat_type'=>array('type'=>'int','style'=>'single'),
           'user_id'=>array('type'=>'string','style'=>'single'),
           'seller_id'=>array('type'=>'string','style'=>'single'),
           'open_id'=>array('type'=>'string','style'=>'single'),
           'payment'=>array('type'=>'float','style'=>'range'),
           'order_num'=>array('type'=>'int','style'=>'range'),
           'attention_status'=>array('type'=>'int','style'=>'single'),
           'sex'=>array('type'=>'int','style'=>'single'),
           'masscount'=>array('type'=>'int','style'=>'multi'),//备注
           'interaction_time'=>array('type'=>'int','style'=>'range'),
           'attention_time'=>array('type'=>'int','style'=>'range'),
           'cancel_attention_time'=>array('type'=>'int','style'=>'range'),
           'continuous_active_day'=>array('type'=>'int','style'=>'range'),
           'nopay_order_num'=>array('type'=>'int','style'=>'range'),
           'first_order_time'=>array('type'=>'int','style'=>'range'),
           'end_order_time'=>array('type'=>'int','style'=>'range'),
           'pay_time'=>array('type'=>'int','style'=>'range')
       );
       if(array_key_exists($str, $attrs)){
           $return=array('type'=>$attrs[$str],'AF'=>'A');  
       }
       else if(array_key_exists($str, $fields)){
           $return=array('type'=>$fields[$str],'AF'=>'F'); 
       }
       else {
           $return=array();
       }
       return $return;
    }
    /**
     * 作者:putin
     * 时间:2016-07-05
     * 功能:更新属性
     * @param string $index
     * @param array() $attrs
     * @param array() $values
     * @return 1 或者 -1 
     * demo:
     *  $attrs=array('sex','masscount')
     *  $values=array( 
            170698=>array(3,1)  
        );
     */
    public  function UpdateAttributes($index, $attrs, $values){
        $result=$this->cl->UpdateAttributes($index, $attrs, $values);
        return $result;
    }
}


【1】上示乃 xml格式数据

【2】sphinx 搜索类

【3】 搜索demo  

            $search = new Searchdatatest();
         $seller_id='w18151';
         $search->setHost('192.168.0.211');
         $search->setPort('9910');
         $search->setIndexName('dist0');
         $selectSql='db_table_id,exsit_label,exsit_label_qiu,exsit_label_hui,wxcard_label_str';
         $data2=  array(
             array('key'=>'seller_id',  'value'=>'w18151') ,
       
             array('key'=>'exsit_label_qiu','value'=>array('a[1]'=>array(4)))   // int类型放括号里  
           // array('key'=>'exsit_label_qiu','value'=>array('t[1]'=>'t1'))      //,字符类型
  
         );
         $result1= $search->sphinxData($seller_id, $data2, array(), 1, 15, $selectSql);
【4】结果

 array (
 'errcode' => 0,
 'data' =>
 array (
 511521599500 =>
 array (
 'db_table_id' => 511521599500,
 'exsit_label' => '{"e":1,"a":1}',
 'exsit_label_qiu' => '{"a":[1,4],"t":["t1","t2","t3"]}',
 'exsit_label_hui' =>
 array (
 0 => 1,
 1 => 2,
 2 => 3,
 3 => 4,
 4 => 5,
 5 => 6,
 ),
 'wxcard_label_str' =>
 array (
 ),
 ),
 ),
 'page' =>
 array (
 'totalnum' => 1,
 'pagefirst' => 1,
 'pagepre' => 1,
 'pagenow' => 1,
 'pagenext' => 1,
 'pagelast' => 1,
 'pagenum' => 1,
 'dividenum' => 15,
 ),
 'msg' => 'i‘’
 ,
 )




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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值