关于使用讯搜(xunsearch)过程中遇到的坑

无所事事1年前日常记录383

1. 在xunsearch中按区间搜索的方法

`$search->addRange('字段名','from','to')`

- 第一个参数为字段名

- 第二个参数为区间的起点(如果为null,则代表不设置下限)

- 第三个参数为区间的终点(如果为null,则代表不设置上限)

2. 在xunsearch中按字段排序的方法

`$search->setSort('字段名','true')`

- 第一个参数为字段名(需要排序的字段,在配置文件中其类型必须设置为number)

- 第二个参数设置排序方式,true为正序,false为倒序(注意,这里的参数是true/false而不是asc/desc

3. 在xunsearch中addRange或者setSort等的不起作用的原因及解决方案

原因: setQuery() 相当于清除所有查询条件(这一点,我们可以在$search->search()的前后分别打印查询语句,对比判断)

解决方案:必须把 addRange, setSort 放在 setQuery 之后

$search->setQuery($q)->setLimit(...)->addRange(...)->setSort();

4. 关于如何解决xunsearch中总条数(getLastCount()/count())统计不准确的解决方案

在xunsearch中,往往会遇到第一页和最后几页统计的总条数不一样的情况(第一页统计的条数比后面的多).遇到这样情况,我们可以变相的通过统计最后一页的总条数来做到条数统一的目的

//获取首页总条数
$search->search();
$count1 = $search->getLastCount();
//跳转到最后,再次获取总条数
$page1 = ceil($count1/$rows);
$begin = ($page1-1)*$rows;
$search->setLimit($rows,$begin);
$search->search();
$count = $search->getLastCount();
//回到正常分页
$search->setLimit($rows,$begin_item);
$docs = $search->search();

5.只有区间查询时,addRange()无效的解决方案

原因:
由于不经过 setQuery 因此有些其它辅助的功能受到限制,比如不能进行结果高亮、不能通过 addWeight、addRange增加辅助搜索条件。
简单来说就是,使用addRange之前必须设置查询条件

解决方案:在使用addRange()之前,先设置一个空条件查询:

$search->setQuery('');

根据手册介绍:空查询代表查询全部数据


本文来源:https://blog.csdn.net/qq_25475755/article/details/78466211

相关文章

ElasticSearch搜索建议与上下文提示

ElasticSearch搜索建议与上下文提示

搜索建议通过Suggester Api实现原理是将输入的文本分解为Token,然后在词典中查找类似的Term返回根据不同场景,ElasticSearch设计了4中类别的Suggesters。Term...

elasticsearch 开机自启动——/etc/init.d

开机自启动,就是在系统启动后,自行启动elasticsearch,无需手动启动。一、查看已存在的开机启动项[root@qf01 ~]# chkconfig --list显...

Elasticsearch配置IK分词器的远程词库

Elasticsearch配置IK分词器的远程词库

我们把es和ik分词器安装完毕后,即可开始配置词库,在es中默认有提供一些词库,过滤一些语气词等;在安装的es的根路径下有一个\plugins\ik\config路径,下面有一个IKAnalyzer....

Elasticsearch之中文分词器插件es-ik的自定义词库

【 ik 自定义词库步骤】1:创建词典首先在 ik 插件的 config/custom 目录下创建一个文件 zhouls.dic (当然这个你可以自己命名,如my.dic都行)在文件中添加词语即可,...

xunsearch实战经验总结

一、定义好配置文件(非常关键)  a):如果需要做精确搜索建议对字段设定index=self,tokenizer = full,不然xunsearch会对字段做分词处理;  b):数字区间搜索需设定&...

CentOS8.0安装迅搜(XunSearch)引擎报错的解决办法

在一些小型项目上需要应用全文搜索引擎时,我比较喜欢使用迅搜,因为部署方便,调用简单,今天给客户部署系统安装迅搜时,竟然有报错(极少遇到报错的情况),花了一些时间查资料,终于解决了,分享一下经验首先是定...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。