一、定义好配置文件(非常关键)

  a):如果需要做精确搜索建议对字段设定index=self,tokenizer = full,不然xunsearch会对字段做分词处理;

  b):数字区间搜索需设定 type=numerice;

  c):如需对字段进行模糊匹配tokenizer 可不设定,默认做scws分词,如字段存储的值为“,6,7,8,”想搜索包含6或8的数据;

  d):配置文件必须包含一个type=id的主键字段

配置文件参考手册:http://www.xunsearch.com/doc/php/guide/ini.guide

生成配置文件:http://www.xunsearch.com/tools/iniconfig

二、搜索  addQueryString()

  a):字段搜索

   $this->_xs_search->addQueryString('style_sn'.':"'.$condition['style_sn'].'"');

  b):IN搜索

foreach ($list as $value){
$query.="{$key}:{$value} OR ";
}
$this->_xs_search->addQueryString(rtrim($query,"OR "));

  

  c):区间搜索

  $this->_xs_search->addRange('shoucun',$condition['shoucun_min'],null); //大于最小值
 $this->_xs_search->addRange('goods_price',$condition['price_min'],$condition['price_max']);

  

  d):like搜索

不设定tokenizer默认支持模糊搜索

   $this->_xs_search->addQueryString('style_sn'.':"'.$condition['style_sn'].'"');

  e):排序

   排序字段建议采用数字类型(非必须) 

  

  $order=array("goods_click"=>1);
if (count($order) > 1) {
$this->_xs_search->setMultiSort($order); //多个排序字段
} else {
$this->_xs_search->setSort($order);
}

  

  d):分组 (setCollapse)

    $this->_xs_search->setCollapse($this->_collapse,1)->setLimit($page_size,$begin);

  f):返回总数不正确

//解决总条数(getLastCount()/count())统计不准确问题
//原理:重新查询一次并设定Limit,如果超过实际总数将返回正确的记录条数
$this->_xs_search->setCollapse($this->_collapse,1)->search();
$count = $this->_xs_search->setCollapse($this->_collapse,1)->getLastCount();
$total_page = ceil($count/$page_size);
$begin = ($total_page-1)*$page_size;
$this->_xs_search->setCollapse($this->_collapse,1)->setLimit($page_size,$begin);
$this->_xs_search->setCollapse($this->_collapse,1)->search();
$count = $this->_xs_search->setCollapse($this->_collapse,1)->getLastCount();
$this->_indexer_count = $count;

  

注意:
如果出现10061错误或连接被拒绝,请在安装目录bin文件夹下执行此句命令:./xs-ctl.sh -b inet start
  

xunsearch实战经验总结的更多相关文章

  1. 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之RAC 特殊问题和实战经验(五)

    RAC 特殊问题和实战经验(五) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体 ...

  2. (转)国内外三个不同领域巨头分享的Redis实战经验及使用场景

    随着应用对高性能需求的增加,NoSQL逐渐在各大名企的系统架构中生根发芽.这里我们将为大家分享社交巨头新浪微博.传媒巨头Viacom及图片分享领域佼佼者Pinterest带来的Redis实践,首先我们 ...

  3. MySQL数据库的优化-运维架构师必会高薪技能,笔者近六年来一线城市工作实战经验

    原文地址:http://liangweilinux.blog.51cto.com/8340258/1728131 首先在此感谢下我的老师年一线实战经验,我当然不能和我的老师平起平坐,得到老师三分之一的 ...

  4. MySQL索引实战经验总结

    MySQL索引对数据检索的性能至关重要,盲目的增加索引不仅不能带来性能的提升,反而会消耗更多的额外资源,本篇总结了一些MySQL索引实战经验. 索引是用于快速查找记录的一种数据结构.索引就像是数据库中 ...

  5. 第9期Unity User Group Beijing图文报道:《Unity实战经验分享》

    时间来到了金秋九月,北京UUG活动也来到了第九期.本次活动的主题为<Unity实战经验分享>,为此我们邀请了3位资深的行业大神.这次我们仍然在北京市海淀区丹棱街5号微软大厦举行活动,在这里 ...

  6. ASP.NET Core & Docker 实战经验分享

    一.前言 最近一直在研究和实践ASP.NET Core.Docker.持续集成.在ASP.NET Core 和 Dcoker结合下遇到了一些坑,在此记录和分享,希望对大家有一些帮助. 二.中间镜像 我 ...

  7. Jenkins高级用法 - Jenkinsfile 介绍及实战经验

    系列目录 1.Jenkins 安装 2.Jenkins 集群 3.Jenkins 持续集成 - ASP.NET Core 持续集成(Docker&自由风格&Jenkinsfile) 4 ...

  8. HDFS配置参数及优化之实战经验(Linux hdfs)

    HDFS优化之实战经验 Linux系统优化 一.禁止文件系统记录时间 Linux文件系统会记录文件创建.修改和访问操作的时间信息,这在读写操作频繁的应用中将带来不小的性能损失.在挂载文件系统时设置no ...

  9. Visual Studio 2015开发Qt项目实战经验分享(附项目示例源码)

    Visual Studio 2015开发Qt项目实战经验分享(附项目示例源码)    转 https://blog.csdn.net/lhl1124281072/article/details/800 ...

随机推荐

  1. java中byte类型

    http://www.cnblogs.com/Robotke1/archive/2013/05/25/3099309.html ------------------------------------ ...

  2. 弗拉特利定律:Illumina怎样缔造基因革命

    蕾妮·瓦林特(Renee Valint)的女儿谢尔碧(Shelby)在2000年出生时.看起来虚弱无力,就如同一仅仅耷拉着的布娃娃.谢尔碧学着走路和说话,但学得很慢.错过了儿童发展的重要阶段.到4岁时 ...

  3. DNS同时占用UDP和TCP端口53——传输数据超过512时候用tcp,DNS服务器可以配置仅支持UDP查询包

    DNS同时占用UDP和TCP端口53是公认的,这种单个应用协议同时使用两种传输协议的情况在TCP/IP栈也算是个另类.但很少有人知道DNS分别在什么情况下使用这两种协议. 先简单介绍下TCP与UDP. ...

  4. Ajax请求成功但是一直进入error的原因

    1.在1.3版本的jQuery以后,严格要求了json格式,如果返回的值不是json格式,他就会执行error函数. 所以如果想让他走success函数的话,还是在后台把数据格式化成json格式吧. ...

  5. golang互斥锁和读写锁

    一.互斥锁 互斥锁是传统的并发程序对共享资源进行访问控制的主要手段.它由标准库代码包sync中的Mutex结构体类型代表.sync.Mutex类型(确切地说,是*sync.Mutex类型)只有两个公开 ...

  6. C - Queue at the School

    Problem description During the break the schoolchildren, boys and girls, formed a queue of n people ...

  7. Bootstrap 模态框使用

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  8. NFine平台去掉平台介绍页面出现的一系列问题

    1.去掉平台介绍页面要做的操作:数值Index页面的下面两处内容 2.注释掉以上两处内容后出现的问题:•当打开多个页面后,最先打开的第一个页面(如下图1的位置)点击×号不能关闭页面:•当打开多个页面后 ...

  9. 文件被占用导致Hive Load文件不成功

    用Python写了个用LOAD命令将文件导入Hive的程序,开始代码写成下面这样: def loadToHive(bakFilePath, tbName): try: transport = TSoc ...

  10. Linker scripts之SECTIONS

    1 Purpose The linker script describes how the sections in the input files should be mapped into the ...