zoukankan      html  css  js  c++  java
  • 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) . "
    " . $doc->message . "
    ";
    }
    

    搜索结果高亮处理

    $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) . "
    " . $message . "
    ";
    }
    

    获取数量

    $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);
    
  • 相关阅读:
    避免使用HttpClient的系统代理
    C#使用ILGenerator动态生成函数
    leveldb和fork的初始化顺序
    模拟阻尼运动
    [c++]printf的编译器静态检测
    Git Submodule管理项目子模块
    redis 读写分离主从服务类借鉴
    git pull 冲突
    git log 查看提交记录
    自带单例模式的redis类
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/9255145.html
Copyright © 2011-2022 走看看