Пример #1
0
 /**
  *  $array_field      数组的字段
  *  $highlight_field  需要高亮的字段
  *  搜索语句最大支持长度为 80 字节(每一个汉字占 3 字节)
  *    addDB($name) - 用于多库搜索,添加数据库名称
  * addRange($field, $from, $to) - 添加搜索过滤区间或范围
  * addWeight($field, $term) - 添加权重索引词
  * setCharset($charset) - 设置字符集
  * setCollapse($field, $num = 1) - 设置搜索结果按字段值折叠
  * setDb($name) - 设置搜索库名称,默认则为 db
  * setFuzzy() - 设置开启模糊搜索, 传入参数 false 可关闭模糊搜索
  * setLimit($limit, $offset = 0) - 设置搜索结果返回的数量和偏移
  * setQuery() - 设置搜索语句
  * setSort($field, $asc = false) - 设置搜索结果按字段值排序
  * setFacets 第一参数为要分面的字段名称(多个字段请用数组作参数), 第二参数是可选的布尔类型,true 表示需要准确统计,默认 false 则为估算
  * getFacets 返回数组,以 fid 为键,匹配数量为值
  * $searchdata = array(
  * 'charset'      =>      'utf-8',  //设置返回的字符编码
  * 'query'        =>      'bundle_id:(tuji) AND client_type:(2) OR column_id:(4) NOT site_id:(1) XOR 西湖', //查询语句
  * 'fuzzy'        =>       1为true 0为false,//模糊查询为true否则false
  * 'limit'        =>       'count,offset',
  * 'range'           =>       array('publish_time'=>'1343432345,1463784752','create_time'=>'1343432345,1463784752'),//值的范围
  * 'sort'         =>        array('id'=>true,'weight'=>false),  //k为字段,false表示降序,true表示升序
  * 'weight'       =>       array('title'=>'你好','brief'=>'好'),// 增加附加条件:提升标题中包含 'xunsearch' 的记录的权重
  * 'autosynonyms' =>        1为true 0为false,  //设为 true 表示开启同义词功能, 设为 false 关闭同义词功能
  * 'setfacets_fields' =>   array('field'=>array('fid','year'),'count_type'=>0或1), 该方法接受两个参数,第一参数为要分面的字段名称(多个字段请用数组作参数), 第二参数是可选的布尔类型,1 表示需要准确统计,默认 0 则为估算
  * 'hotquery'     =>       array('limit'=>10,'type'=>'total'or'lastnum'or'currnum'),$limit 整数值,设置要返回的词数量上限,默认为 6,最大值为 50;$type 指定排序类型,默认为 total(总量),可选值还有:lastnum(上周) 和 currnum(本周)
  * );
  * */
 public function xs_search($searchdata, $filename, $array_field = array(), $highlight_field = array())
 {
     if (!$this->settings['App_textsearch']) {
         return FALSE;
     }
     @(include_once ROOT_PATH . 'lib/class/textsearch.class.php');
     if (class_exists('textsearch')) {
         $ts = new textsearch();
         return $ts->search($searchdata, $array_field, $highlight_field);
     }
 }