/** * $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); } }