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

<?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. (不用循环也可以记录数组里的数)Color the ball --hdu--1556

    题目: N个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a <= b),lele便为骑上他的“小飞鸽"牌电动车从气球a开始到气球b依次给每个气球涂一次 ...

  2. POJ1065--Wooden Sticks(动态规划)

    There is a pile of n wooden sticks. The length and weight of each stick are known in advance. The st ...

  3. Surface 2装机必备软件指南

    新买的Surface到货了还不知道有什么用,每天就用来划划点点?有点太浪费了吧!跟哥走,哥给你推荐几款Surface 2装机必备的软件~应用商店,走起~ 初次使用看过来:Win8宝典 如果你是一个像我 ...

  4. hdu4742

    题意:给定3维的n(<=100000)个点,求最长不下降子序列长度(对于1和2两个点,2可以放在1后面,x1<=x2,y1<=y2,z1<=z2 ),并求出有多少种方案. 思路 ...

  5. Android-HttpClient-Get与Post请求登录功能

    HttpClient 是org.apache.http.* 包中的: 第一种方式使用httpclient-*.jar (需要在网上去下载httpclient-*.jar包) 把httpclient-4 ...

  6. Android-Java-等待唤醒机制原理

    儿时的游戏:(等待 与 唤醒) 有一群小朋友一起玩一个游戏,这个游戏可能大家都玩过,大家一起划拳,划拳输得最惨的那个小朋友去抓人(这个小朋友取名为 CPU),被抓的很多人取名为线程,有很多线程,如果其 ...

  7. FFmpeg4.0笔记:file2rtmp

    Github: https://github.com/gongluck/FFmpeg4.0-study.git #include <iostream> using namespace st ...

  8. ASP.NET Web API + Elasticsearch 6.x 快速做个全文搜索

    最近想做个全文搜索,设想用 ASP.NET Web API + Elasticsearch 6.x 来实现. 网上搜了下 Elasticsearch 的资料,大部分是讲 linux 平台下如何用 ja ...

  9. ASP.NET MVC高亮显示当前页面菜单

    1.创建MvcHtmlExtension扩展类 public static class MvcHtmlExtension { public static MvcHtmlString MenuLink( ...

  10. js css等静态文件版本控制,一处配置多处更新.net版【原创】

    日常web开发中,我们修改了js.css等静态资源文件后,如果文件名不变的话,客户端浏览并不会及时获取最新的资源文件,这就很尴尬了 怎么办呢? 1.小白:让客户清除缓存?,No ,  不靠谱 2.初级 ...