xunsearch进阶使用
设置分页
$search->setLimit(5); // 设置返回结果为前 5 条
$search->setLimit(5, 15); // 设置返回结果为 5 条,但要先跳过 15 条,即第 16~20 条。
设置排序
$search->setSort('chrono'); // 按 chrono 字段的值倒序
$search->setSort('chrono', true); // 按 chrono 字段的值正序排列
// 表示先以 chrono 正序、再以 pid 逆序(pid 是字符串并不是数值所以 12 会排在 3 之后)
$sorts = array('chrono' => true, 'pid' => false);
// 如果直接把字段名作为数组的值,默认对该字段采用逆序,因此以上用法和下面用法是完全一样的
$sorts = array('chrono', 'pid' => false);
// 设置搜索排序
$search->setMultiSort($sorts);
读取文档结果
// 以 demo 项目的配置为例
$docs = $search->setQuery('测试')->setLimit(5)->search();
foreach ($docs as $doc)
{
// 其中常用魔术方法:percent() 表示匹配度百分比, rank() 表示匹配结果序号
echo $doc->rank() . '. ' . $doc->subject . " [" . $doc->percent() . "%] - ";
echo date("Y-m-d", $doc->chrono) . "\n" . $doc->message . "\n";
}
搜索结果高亮处理
$docs = $search->setQuery('测试')->setLimit(5)->search();
foreach ($docs as $doc)
{
$subject = $search->highlight($doc->subject); // 高亮处理 subject 字段
$message = $search->highlight($doc->message); // 高亮处理 message 字段
echo $doc->rank() . '. ' . $subject . " [" . $doc->percent() . "%] - ";
echo date("Y-m-d", $doc->chrono) . "\n" . $message . "\n";
}
获取数量
$total = $search->dbTotal;
$total = $search->getDbTotal();
// 先设置 Query 再获取数量
$count = $search->setQuery('神雕侠侣 -电视剧')->count();
// 直接把 Query 语句传入
$count = $search->count('杭州 西湖');
获取热门搜索词
$words = $search->getHotQuery(); // 获取前 6 个总热门搜索词
$words = $search->getHotQuery(10, 'lastnum'); // 获取前 10 个上周热门词
获取相关搜索词
$search->setQuery('西湖');
// 获取前 6 个和默认搜索语句 "西湖" 相关搜索词
$words = $search->getRelatedQuery();
// 获取 10 个和 "杭州" 相关的搜索词
$words = $search->getRelatedQuery('杭州', 10);
xunsearch进阶使用的更多相关文章
- 2017PHP程序员的进阶之路
2017PHP程序员的进阶之路 又是一年毕业季,可能会有好多毕业生即将进入开发这个圈子,踏上码农这个不归路.根据这些年在开发圈子总结的LNMP程序猿发展轨迹,结合个人经验体会,总结出很多程序员对未来的 ...
- 【转】2017PHP程序员的进阶之路
2017PHP程序员的进阶之路 又是一年毕业季,可能会有好多毕业生即将进入开发这个圈子,踏上码农这个不归路.根据这些年在开发圈子总结的LNMP程序猿发展轨迹,结合个人经验体会,总结出很多程序员对未来的 ...
- nodejs进阶(6)—连接MySQL数据库
1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...
- nodejs进阶(4)—读取图片到页面
我们先实现从指定路径读取图片然后输出到页面的功能. 先准备一张图片imgs/dog.jpg. file.js里面继续添加readImg方法,在这里注意读写的时候都需要声明'binary'.(file. ...
- JavaScript进阶之路(一)初学者的开始
一:写在前面的问题和话 一个javascript初学者的进阶之路! 背景:3年后端(ASP.NET)工作经验,javascript水平一般般,前端水平一般般.学习资料:犀牛书. 如有误导,或者错误的地 ...
- nodejs进阶(3)—路由处理
1. url.parse(url)解析 该方法将一个URL字符串转换成对象并返回. url.parse(urlStr, [parseQueryString], [slashesDenoteHost]) ...
- nodejs进阶(5)—接收请求参数
1. get请求参数接收 我们简单举一个需要接收参数的例子 如果有个查找功能,查找关键词需要从url里接收,http://localhost:8000/search?keyword=地球.通过前面的进 ...
- nodejs进阶(1)—输出hello world
下面将带领大家一步步学习nodejs,知道怎么使用nodejs搭建服务器,响应get/post请求,连接数据库等. 搭建服务器页面输出hello world var http = require ...
- [C#] 进阶 - LINQ 标准查询操作概述
LINQ 标准查询操作概述 序 “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法.大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T> ...
随机推荐
- Cacti的基本安装配置
////////////////////cacti///////////////////////////常用的监控软件有:cacti.nagios.zabbix等 cacti 重图形.有数据历史.需要 ...
- Gulp实例(包括环境搭建的自动检测)
# Gulp实例(包括环境搭建的自动检测) Gulp是一个自动化构建工具,开发者可以使用它在项目开发过程中自动执行常见任务.下面我将完成如下的功能点并且附上源码: CSS文件打包 less文件打包 s ...
- spring3: Aspectj后置返回通知
Aspectj后置返回通知 接口: package chapter1.server; public interface IHelloService2 { public int sayAfterRetu ...
- C++(十六) — 类中引用成员函数、命名空间的使用
1.为什么类中引用成员函数? 类将属性和方法做了封装.类是一种数据类型,也就是:固定大小内存块的别名. 类的定义是一个抽象的概念,定义时不分配内存,当用类定义对象时,才分配一个固定大小的内存块. 此时 ...
- python标准日志模块logging使用
python的标准库里的日志系统从Python2.3开始支持.只要import logging这个模块即可使用.如果你想开发一个日志系统, 既要把日志输出到控制台, 还要写入日志文件,只要这样使用: ...
- 更新增加一个门店ID字段的值
MYSQL因为不能查询一张表时同时更新一张表,同时又会有子查询大于等于一条的情况出现. 分两种情况: 1 直接JOIN 得到一张表. 然后导出做筛选 CREATE TABLE TEST SELECT ...
- [转载]Java动态填充word文档并上传到服务器
一. 需求背景 在一些特殊应用场合,客户希望在服务器上生成文档的同时并填充数据,客户端的页面不显示打开文档,但是服务器上生成文档对服务器压力很大,目前服务器上生成文档第一种就是方式是jacob, 但是 ...
- Django restfull规范
一. 什么是RESTful REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移” REST从资源的角 ...
- ios上传图片遇见了一个TimeoutError(DOM Exception 23)异常
TimeoutError(DOM Exception 23):The operation timed out 百度了下,没发现解决办法
- Qt TabWidget QTabBar 宽高设置
/*************************************************************************** * Qt TabWidget QTabBar ...