xunsearch进阶使用
2024-08-28 17:28:48
设置分页
$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);
最新文章
- gulp-less解决遇到错误停止执行task
- Git 初始化版本库
- oracle 抛出自定义错误(网上找的例子)
- 【XLL API 函数】 xlFree
- 【VB技巧】VB ListView 控件功能使用详解
- 【锋利的JQuery-学习笔记】Tootip(提示框)
- Android(java)学习笔记82:我们到底该如何处理异常?
- 【BZOJ 1877】 [SDOI2009]晨跑
- percona-xtrabackup安装及使用教程
- Android 开发笔记 “调用WebService”
- [转]编译 JavaScriptCore For iOS
- esclipse连接mysql数据库
- python-继承类执行的流程
- Unity C#笔记 协程
- 如何在MongoDB设计存储你的数据(JSON化)?
- angluar1时间控件,在浏览器里是没有问题的,但是真机时间报错NAN
- μC/OS-II 信号量集
- 动态规划 - 213. House Robber II
- MySQL中使用SHOW PROFILE命令分析性能的用法整理
- 2017-2018-2 20155224『网络对抗技术』Exp6:信息搜集与漏洞扫描