Xunsearch安装与配置

简介

C++开发的多线程服务,1.5T搜索不超过1秒;单库最多支持40亿条数据

安装

下载:xunsearch-full-latast.tar.bz2
解压:tar -jxvf xunsearch-full-latest.tar.bz2
安装: cd xunsearch-full-latest;
sh setup.sh    #执行安装脚本即可

启动

启动:cd /usr/local/xunsearch/bin/			#安装目录
./xs-ctl.sh start 

说明:索引会启动两个服务
    1.索引服务(8383);负责索引的添加,删除,修改
    2.搜索服务(8384),负责提供搜索服务,即查询
查看命令
    ps aux | grep xc
    xs-ctl.sh start  #启动
    xs-ctl.sh start  #停止

使用

  每个xunseach都有一个独立的配置文件ini
		cat $prefix/sdk/php/app/demo.ini
  填充数据方式
        cd $prefix/sdk/php/
        util/Indexer.php --source=csv clean demo
  数据源格式:csv
      粘贴数据源:粘贴后回车
      保存数据:linux:ctrl+d
      Window:Ctrl+z

查询


随机查
    $prefix/sdk/php/util/Quest.php demo 项目
    $prefix/sdk/php/util/Quest.php demo 项目测试
指定字段
    $prefix/sdk/php/util/Quest.php demo  pid:2
    $prefix/sdk/php/util/Quest.php demo 项目 or pid:2
特殊搜索:
    $prefix/sdk/php/util/Quest.php --hot demo #热度
    $prefix/sdk/php/util/Quest.php --related demo 项目 	#相关的
    $prefix/sdk/php/util/Quest.php --correct demo yunserch 	#纠错的
    $prefix/sdk/php/util/Quest.php --suggest demo yunserch 	#搜索建议

刷新搜索日志:
  	$prefix/sdk/php/util/Indexer.php --flush-log demo

Xunsearch的ini配置说明

每个项目一个ini,
常规配置
名称:project.name=XXX
字符集:project.default_charset=UTF-8		#默认
索引服务端口:server.index=8383				#默认
搜索服务端口:server.search=8384			#默认

字段名:[字段名]
字符型:type = XXX
字符型:string 适用于多数情况,也是默认值
数值型:numeric,包含整形和浮点数。仅当字段需要用于以排序或区间检索时才为该类型,否则用string
日期型:date,形式为YYYYmmdd这样的8字节,如果没有区间或排序需求不建议使用。
主键型:id,确保每条数据具备唯一值,是索引更新和删除的凭据,每个搜索项目必须有且仅有一个id字段,该字段值不区分大小写
标题型:title,标题或名称字段,至多有一个该类型的字段
内容型:body,主内容字段,即本搜索项目最长的字段,至多有一个该类型字段,本字段不支持字段检索
在线测试工具:
http://xunsearch.com/tools/iniconfig

Xunsarch的php使用

认识对象:
XS			XS是搜索项目的总对象,所有操作均基于此对象或其属性
XSDocument			搜索结果或索引文档,包括一组字段及值,相当于Sql表中的一条记录
XSIndex	索引管理,通过XS对象的index属性取得
XSException异常类型,必须通过次异常类以判断操作是否正确
基本使用
本地引入即可

认识对象

XS					XS是搜索项目的总对象,所有操作均基于此对象或其属性
XSDocument			搜索结果或索引文档,包括一组字段及值,相当于Sql表中的一条记录
XSIndex				索引管理,通过XS对象的index属性取得
XSException			异常类型,必须通过次异常类以判断操作是否正确

基本使用

<?php 



本地引入即可
    include ‘/usr/local/xunsarch/sdk/php/lib/XS.php’;
    Try{
        $xs = new XS('demo’);		//创建索引对象
        $index = $xs->index;			//获取管理对象
        $search = $xs->search;		//获取搜索对象
        //创建记录
        $data = [
        'pid’=>123,
        'subject’=> ‘测试文档标题’,
        'message’=>  ‘测试标题内容’,
        'chrono’=> time()
        ];
        $doc = new XSDocument($data);
        $index->add($dac);			//添加索引
        $index->flushIndex();		//同步索引
        $index->updata($doc);		//修改

        $res = $search->search(‘测试’);		//查询:测试
        $res = $search->search(‘测试 文档’);	//查询:测试和文档
        $res = $search->search(‘测试 OR 文档’);	//查询:测试或文档


        var_dump($res);
        $index->del(‘123’);			//删除,多个传数组
        $index->clean();					//清空索引


    } catch (XSException $e){
        echo $e.”\n”.$e->getTracesAsString().”\n”;
    }
Licensed under 京ICP备17003353号-3