部署,配置,有时间在记录

<?php
namespace APPlib;
class XSGameku {
public $error;
public $xs;
public $search;
public $index;
private $project='gameku'; public function __construct(){
if(!defined("XUNSEARCH_SDK_PATH")){
$this->error = 'not define XUNSEARCH_SDK_PATH';
return $this->error;
} include XUNSEARCH_SDK_PATH . 'lib' . DIRECTORY_SEPARATOR . 'XS.php'; if(!class_exists('XS')){
$this->error = 'class XS not exist';
return $this->error;
} $this->xs = new \XS($this->project);
$this->index = $this->xs->getIndex();
$this->search = $this->xs->getSearch();
} public function getSearch($where){
$query = $data = $ids = array();$count = ; if(isset($where['name'])) $query[]= "name:{$where['name']}";
if(isset($where['online'])) $query[]= "online:{$where['online']}";
if(isset($where['seq'])) $query[]= "seq:{$where['seq']}";
if(isset($where['is_ios'])) $query[]= "is_ios:1";
if(isset($where['is_android'])) $query[]= "is_android:1";
if(isset($where['type_new'])) $query[]= "type_new:{$where['type_new']}";
if(isset($where['theme_new'])) $query[]= "theme_new:{$where['theme_new']}";
if(isset($where['price'])) $query[]= "price:{$where['price']}";
if(!isset($where['orderby'])) $where['orderby']='id'; if($query){
$query = implode(' AND ',$query);
}else{
$query = '';
}
//echo $query;
$this -> search -> setQuery($query);
$querty = $this -> search -> getQuery();
//echo ($querty); if(isset($where['star']) && $where['star'] != ){
//计算range--begin,end
$begin = ($star -) * -;
$end = $star * ;
$this -> search -> addRange('star',$begin,$end);
}; switch($where['orderby']){
case 'hot':
$this -> search -> setMultiSort(array('hot'=>true,'id_num'=>false));
$orderby_str = "hot ASC,id DESC";
break;
case 'zuixin':
$this -> search -> setMultiSort(array('zuixin'=>true,'id_num'=>false));
$orderby_str = "zuixin ASC,id DESC";
break;
default:
$this -> search -> setSort('id_num');
$orderby_str = "id DESC";
break;
} $page_start = ($where['pageno']-) * $where['pagesize'];
$this -> search -> setLimit($where['pagesize'], $page_start); $dataA = $this -> search -> search();
if($dataA){
foreach ($dataA as $key=>$doc){
$ids[] = $doc->id;
}
$GamkuModel = \APPlib\get_app_model('GamekuModel');
if($where['field'] == 'www'){
$field = 'id,name,icon,filesize,filesize_ios,type_new,price,star,islike,unlike';
}else{
$field = 'id,name,icon';
}
$data = $GamkuModel->field($field)->where('id in('.implode(',',$ids) .')')->order($orderby_str)->select();
} //var_dump($data);
$count = $this -> search -> getLastCount();
//var_dump($count);
//exit; $max_pageno = ceil($count/$where['pagesize']);
return array($data,$max_pageno,$count); } public function getSearchName($name=false,$pageno=,$pagesize=){
$data=array();$count = ;
$this->search->setScwsMulti();
if($name !== false){
$query = "name:{$name}";
}else{
return false;
} $this -> search -> setQuery($query);
$page_start = ($pageno-) * $pagesize;
$this -> search -> setLimit($pagesize, $page_start); $dataA = $this -> search -> search();
if($dataA){
// foreach ($dataA as $key=>$doc){
// $data[$key]['id'] = $doc->id;
// $data[$key]['name'] = $doc->name;
// $data[$key]['icon'] = $doc->icon;
// } foreach ($dataA as $key=>$doc){
$ids[] = $doc->id;
}
$GamkuModel = \APPlib\get_app_model('GamekuModel');
$field = 'id,name,icon,filesize,filesize_ios,type_new,price,star';
$data = $GamkuModel->field($field)->where('id in('.implode(',',$ids) .')')->select(); } //var_dump($data);
$count = $this -> search -> getLastCount();
//var_dump($count);
//exit; $max_pageno = ceil($count/$pagesize);
return array($data,$max_pageno,$count); } // public function getSearchXun($type,$wd,$platform,$class,$gtype,$orderby,$pageno,$pagesize = 4){
// $this -> search -> setAutoSynonyms();
//$this -> search -> setFuzzy(); //$this->search->setScwsMulti(0);
//$this->search->setScwsMulti(8); //header("Content-type: text/html; charset=utf-8");
//$tokenizer = new \XSTokenizerScws(); //$tokenizer->addDict('/usr/local/xunsearch/data/gameku/dict.xdb', SCWS_XDICT_XDB);
//$tokenizer->setMulti(SCWS_MULTI_ZALL); //$this -> index->setCustomDict('我');
//var_dump($this -> index->getCustomDict());
//$this -> index->setScwsMulti(SCWS_MULTI_ZALL);
//var_dump($this -> index->getScwsMulti());
//exit; // var_dump($tokenizer->hasWord('我','r'));
// var_dump($tokenizer->hasWord('星','n'));
// var_dump($tokenizer->hasWord('我叫','v'));
// var_dump($tokenizer->hasWord('星球','n'));
// var_dump($tokenizer->hasWord('涂他涂','n'));
// print_R($tokenizer->getResult($name));exit; // $this -> search -> setAutoSynonyms();
// //$this -> search -> setFuzzy();
// //$wd = "$wd";
// $this -> search -> setQuery($wd);
// //$this -> search -> setQuery('name:武士 僵尸 大战');
// $this -> search -> addRange('auth_status',2,2);
// //header("Content-Type: text/html;Charset=UTF8;");
// //$this -> search -> addRange('type',3,3);
// //$this -> search -> addRange('platform',2,2);
// //$this -> search -> setSort('dl_count_px',false);
// // $this -> search -> setLimit(3, 0);
// // $querty = $this -> search -> getQuery();
// //$dataA = $this -> search -> search();
// // //$count = $this -> search -> getLastCount();
// // var_dump($querty);
// //$this -> search -> setSort('pub_time_px',false);
// // $querty = $this -> search -> getQuery();
// //var_dump($dataA);exit; // $type != 0 ? $this -> search -> addRange('type',$type,$type) : false;
// $platform != 0 ? $this -> search -> addRange('platform',$platform,$platform) : false;
// $class != 0 ? $this -> search -> addRange('class',$class,$class) : false;
// $gtype != 0 ? $this -> search -> addRange('gtype_new',$gtype,$gtype) : false; // switch($orderby){
// case 1 : $this -> search -> setSort('pub_time_px',false);break;
// case 2 : $this -> search -> setSort('dl_count_px',false);break;
// case 3 : $this -> search -> setSort('star_px',false);break;
// default : break;
// } // $page_start = ($pageno-1) * $pagesize;
// $this -> search -> setLimit($pagesize, $page_start); // $querty = $this -> search -> getQuery();
// $dataA = $this -> search -> search();
// $count = $this -> search -> getLastCount();
// //var_dump($querty);
// $data =array();
// if($count>0){
// foreach ($dataA as $key=>$doc){
// $data[$key]['id'] = $doc->id;
// $data[$key]['name'] = $doc->name;
// $data[$key]['platform']=$doc->platform;
// $data[$key]['icon'] = $doc->icon;
// $data[$key]['mark'] = $doc->mark;
// $data[$key]['star'] = $doc->star;
// $data[$key]['dl_count'] = $doc->dl_count;
// $data[$key]['pub_time'] = $doc->pub_time;
// $data[$key]['comment_id'] = $doc->comment_id;
// }
// }
// $max_pageno = ceil($count/$pagesize);
// return array($data,$max_pageno,$count); // } public function dataIn($id){
if(empty($id) || $id < ){
return false;
}
$GamekuModel = \APPlib\get_app_model('GamekuModel');
$data = $GamekuModel->field('id,name,name_old,online,seq,is_ios,is_android,type_new,theme_new,price,star,star,hot,zuixin,status')->where("id=$id")->find();
if($data && $data['status'] == ){
//创建文档对象。
$dataXun['id'] = $dataXun['id_num'] = $data['id'];
$dataXun['name'] = $data['name'];
$dataXun['name_old'] = $data['name_old'];
$dataXun['online'] = $data['online'];
$dataXun['seq'] = $data['seq'];
$dataXun['is_ios'] = $data['is_ios'];
$dataXun['is_android'] = $data['is_android'];
$dataXun['type_new'] = $data['type_new'];
$dataXun['theme_new'] = $data['theme_new'];
$dataXun['price'] = $data['price'];
$dataXun['star'] = $data['star'];
$dataXun['hot'] = $data['hot'];
$dataXun['zuixin'] = $data['zuixin']; //这里优化为队列
$doc = new \XSDocument;
$doc->setFields($dataXun);
$this->index->update($doc);
$this->index->flushIndex();
return true;
}
} public function deleteIndex($idArray){
$this->index->del($idArray);
//$this->index->flushIndex();
} public function cleanIndex(){
$this->index->clean();
}
}

xunsearch使用记录的更多相关文章

  1. xunsearch搜索使用

    目录 如何开始搜索? 典型处理 快捷操作 搜索中的串接操作 构建搜索语句 如何开始搜索? <?php // 引入 require_once './sdk/xs/lib/XS.php'; // 创 ...

  2. 记录XunSearch(讯搜)的使用教程步骤(CentOS7下)

    一.安装编译工具 yum install make gcc g++ gcc-c++ libtool autoconf automake imake mysql-devel libxml2-devel ...

  3. xunsearch: 开启后台服务,索引……随笔记录

    重启后台服务: cd $prefix ; bin/xs-ctl.sh restart 索引: # 导入 MySQL 数据库的 dbname.tbl_post 表到 demo 项目中,并且平滑重建 ut ...

  4. Xunsearch迅搜(基于 xapian+scws 的开源中文搜索引擎)安装与简单使用

    今天鼓捣了xunsearch,感觉官方指南写得挺详细,于是按照指南一步一步走,但是感觉越看越凌乱,像看API一样,新手看得特费劲,网上也少有新手教程,于是略过今天的歪路,记录一下我的安装步骤. Xun ...

  5. xunsearch增量索引改进版

    最近测试了xunserach全文索引程序.xunsearch只有LINUX版,所以想用windows服务器请使用其它全文索引程序.xunsearch本身不像coreseek那样自带增量索引的功能,所以 ...

  6. 实践中 XunSearch(讯搜)更新索引方案对比

    检测PHP-SDK的运行条件(查看是否支持XunSearch)   $prefix/sdk/php/util/RequiredCheck.php $prefix #替换成你的安装目录 使用 XunSe ...

  7. xunsearch的使用(二)

    1.查看配置文件vim /data/local/xunsearch/sdk/php/app/demo.ini [pid] type = id [subject] type = title [messa ...

  8. xunsearch基本使用

    目录 基本实践 异常捕获 XSDocument 文档 添加操作 ini 更新.修改文档 删除文档 清空索引 平滑重建索引 使用索引缓冲区 自定义 SCWS 词库 基本实践 <?php // 引入 ...

  9. Linux 之 Xunsearch(2)

    Linux 之 Xunsearch(2) 参考教程:[千峰教育] Xunsearch的项目配置文件: 基本说明: (1)项目配置是一个项目的核心灵魂,非常重要,通常保存为.ini文件, 通常存储在/u ...

随机推荐

  1. HDU3488 Tour

    Tour Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) Total Submi ...

  2. java数据库编程(未整理完,待续)

    java使用数据库可以借助jdbc这个中间媒介.本文将介绍如何使用jdbc连接数据库,数据库的基本操作和jdbc的事物处理. 1 连接数据库 一般java连接数据库,都有几个步骤: 0.导入相应的驱动 ...

  3. ASP.NET Web API 框架研究 Controller创建过程与消息处理管道

    现在我们从代码角度来看下,从消息处理管道末尾是怎么创建出Controller实例的.消息处理管道末端是一个叫HttpRoutingDispatcher的处理器,其内部完成路由后 ,会把消息派送给其内部 ...

  4. linux查看RAID信息

    linux查看RAID信息 发表于2013 年 12 月 22 日 RAID分为软RAID和硬RAID 软RAID查看 cat /proc/mdstat 硬RAID查看 在启动画面进raid卡查看 I ...

  5. 【NumberValidators】工商营业执照号码和统一社会信用代码验证

    从本质上讲,工商营业执照号码和统一社会信用代码是两套完全不一样的编码规则,识别结果也仅有行政区划部分为两者共有,但因为这两种编码同时存在的原因,所以如果需要在系统中唯一标志一家企业时,还是可以通过工商 ...

  6. 【.NET架构】BIM软件架构02:Web管控平台后台架构

    一.前言        之前一篇叙述的是Revit插件(桌面软件)的软件架构,本篇将开始叙述Web项目的架构方案.今年一月在老东家加入BIM平台部门,为一些大型国家项目搭建BIM管控平台,业主使用管控 ...

  7. [leetcode.com]算法题目 - Sqrt(x)

    Implement int sqrt(int x). Compute and return the square root of x. class Solution { public: int sqr ...

  8. delphi char数组、string和Pchar的相互转换

    因为要调用windows的api或者给vc++写接口,很多地方都要用到pchar,现在将char数组.string和pchar之间的相互转换都列出来,都是网上找的资料,我总结一下,先直接上代码,再讲原 ...

  9. 预处理命令使用详解----#if、#endif、#undef、#ifdef、#else、#elif

    预处理命令 在接触#if.#undef这类预处理指令前,大部分都都接触过#define.#include等预处理命令,通俗来讲预处理命令的作用就是在编译和链接之前,对源文件进行一些文本方面的操作,比如 ...

  10. 分组,命名分组,url的命名和反向解析

    1.位置分组 匹配到参数,按照位置参数的方式传递给视图函数 视图函数需要定义形参接收变量 1.写在url里面的: # 删除 url(r'^del_class/(\d+)',views.del_clas ...