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

  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. 初探BurpSuite

    BurpSuite这套渗透软件.或者已经能够说是渗透攻击平台了吧,玩的好.确实非常方便. 就像是玩英雄联盟的ADC,一開始玩VN.感觉非常难上手,玩多了肯定会爱上VN(啊,貌似提到了什么奇怪的东西). ...

  2. Java图形界面(GUI)——如何将JTable成功放入面板

    在这次课程设计中,大部分内容都设计的很流畅,没有遇到太大的问题,但在面板中加入JTable时确实花费了一部分时间,在此将解决办法总结出来: 定义控件: JPanel panel = new JPane ...

  3. 曲线控件我一直用codeproject上的那几个(C++ 100款开源界面库)

    Alberl#23楼[楼主] 2013-11-04 11:47 Alberl @baita00引用看了大神的教程,真的不错,学习了很多东西,^_^.这节教程里,大神好像在找曲线控件,是吗?大神有什特殊 ...

  4. springboot @WebFilter过滤器的使用

    过滤器的用法就不多说了 新建Filter的继承类:MemberFilter(放置包需要注意) @WebFilter(urlPatterns = "/*") @Order(1) pu ...

  5. Netty简单介绍(非原创)

    文章大纲 一.Netty基础介绍二.Netty代码实战三.项目源码下载四.参考文章   一.Netty基础介绍 1. 简介 官方定义为:”Netty 是一款异步的事件驱动的网络应用程序框架,支持快速地 ...

  6. HTML网页做成ASP.NET后台的方法以及.NET后台控制前台样式的方法

    之前一直不知道,写好的纯HTML网页怎么做成ASP.NET后台的呢,因为之前使用别人的HTML模板写过一个自己的个人博客 果冻栋吖个人博客 当时用的PHP写的.一直在考虑怎么做成.NET的. 今天自己 ...

  7. DropDownListFor

  8. lz的第一个RN项目

    这是lz 成功在原有项目上集成的第一个ReactNative 项目. 参考官方网址: http://reactnative.cn/docs/0.43/integration-with-existing ...

  9. YARN环境搭建 之 二:CentOS7.0 JDK配置

    Hadoop是Java写的,他无法使用Linux预安装的OpenJDK,因此安装hadoop前需要先安装JDK(1.6以上)   原材料:在Oracle官网下载的32位JDK:     说明: 1.C ...

  10. element-ui Cascader 级联选择器示例

    <html> <head>test</head> <style> @import url("http://unpkg.com/element- ...