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

<?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. Linux服务器数据备份恢复策略

    一.Linux 备份恢复基础 1.什么是备份 最简单的讲,备份数据的过程就是拷贝重要的数据到其他的介质之上(通常是可移动的),以保证在原始数据丢失的情况下可以恢复数据.一次备份可能是简单的 cp命令, ...

  2. POJ3258--River Hopscotch(Binary Search similar to POJ2456)

    Every year the cows hold an event featuring a peculiar version of hopscotch that involves carefully ...

  3. UIImageView的frame设置(4种方式)

    查看图片宽高后,再去设置UIImageView的frame.(不推荐) 用代码自动获取图片的宽高来设置UIImageView的frame: 创建UIImageView的同时,直接设置UIImageVi ...

  4. cxgrid过滤使用心得

    uses cxFilter; cxgrid过滤条件清除:cxgrdbtblvwGrid1DBTableView2.DataController.Filter.AutoDataSetFilter:=Tr ...

  5. Android-Kotlin-区间与for&List&Map简单使用

    区间与for: package cn.kotlin.kotlin_base04 /** * 区间与for */ fun main(args: Array<String>) { /** * ...

  6. C#生成指定长度随机数

    public static string GetRandomString(int iLength) { ";// 随机字符中也可以为汉字(任何) StringBuilder sb = new ...

  7. [leetcode.com]算法题目 - Same Tree

    Given two binary trees, write a function to check if they are equal or not. Two binary trees are con ...

  8. 尝试利用slmail的漏洞来getshell

    作者:Joe   本文属于Arctic shell原创内容计划文章,转载请注明原文地址! 二进制,计算机才可以理解的低级语言,简单来说它是一种信号,用电信号为例,0就是断电,而1就是有电,这样子010 ...

  9. 网页关闭(解决window.close在火狐下不兼容问题)

    熟悉前端的都知道,火狐默认状态非window.open的页面window.close是无效的 网上有很多人说,在火狐的地址栏输入:about:config然后找到dom.allow_scripts_t ...

  10. 转---谈谈HTTP协议中的短轮询、长轮询、长连接和短连接

    作者:伯乐在线专栏作者 - 左潇龙 http://web.jobbole.com/85541/ 如有好文章投稿,请点击 → 这里了解详情 引言 最近刚到公司不到一个月,正处于熟悉项目和源码的阶段,因此 ...