如何开始搜索?

<?php
// 引入
require_once './sdk/xs/lib/XS.php'; // 创建xs
$xs = new XS('my');
$search = $xs->search; // 获取 搜索对象

典型处理

<?php
// 引入
require_once './sdk/xs/lib/XS.php'; // 创建xs
$xs = new XS('demo');
$search = $xs->search; // 获取 搜索对象 $query = '项目测试'; // 这里的搜索语句很简单,就一个短语 $search->setQuery($query); // 设置搜索语句
$search->addWeight('subject', 'xunsearch'); // 增加附加条件:提升标题中包含 'xunsearch' 的记录的权重
$search->setLimit(5, 0); // 设置返回结果最多为 5 条,并跳过前 0 条 $docs = $search->search(); // 执行搜索,将搜索结果文档保存在 $docs 数组中
$count = $search->count(); // 获取搜索结果的匹配总数估算值 foreach ($docs as $doc)
{
echo $doc->rank() . ". " . $doc->subject . " [" . $doc->percent() . "%]\n";
echo $doc->message . "\n";
} echo "共".$count."个";

快捷操作

<?php
// 引入
require_once './sdk/xs/lib/XS.php'; // 创建xs
$xs = new XS('demo');
$search = $xs->search; // 获取 搜索对象 $count = $search->count('项目测试');
$docs = $search->search('项目测试'); foreach ($docs as $doc)
{
echo $doc->rank() . ". " . $doc->subject . " [" . $doc->percent() . "%]\n";
echo $doc->message . "\n";
} echo "共".$count."个";

搜索中的串接操作

<?php
// 引入
require_once './sdk/xs/lib/XS.php'; // 创建xs
$xs = new XS('demo');
$search = $xs->search; // 获取 搜索对象 $count = $search->count('项目测试');
$docs = $search->setQuery('项目测试')->addWeight('subject', 'xunsearch')->setLimit(5, 0)->search(); foreach ($docs as $doc)
{
echo $doc->rank() . ". " . $doc->subject . " [" . $doc->percent() . "%]\n";
echo $doc->message . "\n";
} echo "共".$count."个";

构建搜索语句

1.典型搜索语句

$search->search('上海人民公园'); // 检索 body 型字段及混合区
$search->search('上海 人民公园'); // 用空格连接 2 个关键词, 这种情况比上面的用法更明确
$search->search('subject:上海 人民公园'); // 特别要求 subject 字段包含 "上海"
$search->setFuzzy()->search('上海公园'); // 开启模糊搜索,搜索 "上海" 或 "公园"

使用空搜索条件进行搜索,其含义相当于全部匹配

2.布尔搜索

多个词语之间的“并且”、“或者”、“异或”关系

$search->search('杭州 西湖');
$search->search('杭州 AND 西湖'); // 这两者效果是相同的 $search->setFuzzy()->search('杭州 西湖');
$search->search('杭州 OR 西湖'); // 这两者效果相同,都是只要求匹配其中一个 $search->search('杭州 XOR 西湖'); // 表示必须包含其中一个词,并且不允许同时包含这两个词。

要求搜索结果中不含特定关键词

$search->search('神雕侠侣 -电视剧'); // 正确用法1
$search->search('神雕侠侣 NOT 电视剧'); // 正确用法2

组合关系的括号表达式

// 要求结果包含 “杭州+西湖” 或 “杭州 + 西溪湿地”,并且不能包含 “汽车 火车”
$search->search('((杭州 AND 西湖) OR (杭州 AND 西溪湿地)) NOT (汽车 火车)');

3.精确搜索

使用双引号进行精确匹配

$search->search('上海科技大学');
// 这时内部把搜索语句切割为:上海+科技+大学,要求搜索结果同时包含这三个词即可,
// 但不要求它们的出现顺序,有可能先出现”科技“再出现”上海“,也有可能这三个词离得很远。 $search->search('"上海科技大学"');
// 加上引号后,要求搜索结果必须依次出现”上海+科技+大学“,要显得精准很多。

4.索引词之间的距离查询

$search->search('杭州 NEAR 西湖'); // 要求结果中出现 "杭州" 和 "西湖",并且距离不超过 10 个词
$search->search('杭州 NEAR/5 西湖'); // 要求它们距离不超过 5个词
$search->search('杭州 ADJ 西湖'); // 要求结果中先出现 "杭州" 再出现 "西湖",并且距离不超过 10 个词
$search->search('杭州 ADJ/3 西湖'); // 要求它们距离不超过 3个词

字段值区间搜索

$from = strtotime("2011-1-1"); // 起始时间 2011年1月1日
$to = strtotime("2011-9-1"); // 结束时间 2011年9月1日 // 1. <= $to: 要求结果的时间必须在 2011-9-1 之前,并且包含 2011-9-1
$docs = $search->setQuery('杭州')->addRange('chrono', null, $to)->search(); // 2. >= $from: 要求结果的时间必须在 2011-1-1 之后,并且包含 2011-1-1
$docs = $search->setQuery('杭州')->addRange('chrono', $from, null)->search(); // 3. > $from && <= $to: 要求结果的时间必须在 2011-1-1 之后 并且 2011-9-1 之前
$docs = $search->setQuery('杭州')->addRange('chrono', $from, $to)->search();

按字段索引词加权

// 搜索包含 "杭州" 的结果,并且提升 subject 字段包含 "西湖" 的数据的排序
$docs = $search->setQuery('杭州')->addWeight('subject', '西湖')->search();

xunsearch搜索使用的更多相关文章

  1. xunsearch搜索测试

    1.导入测试数据 cd $prefix/sdk/php util/Indexer.php --source=csv --clean demo 然后出现 初始化数据源 ... csv WARNING: ...

  2. Xunsearch迅搜(基于 xapian+scws 的开源中文搜索引擎)安装与简单使用

    今天鼓捣了xunsearch,感觉官方指南写得挺详细,于是按照指南一步一步走,但是感觉越看越凌乱,像看API一样,新手看得特费劲,网上也少有新手教程,于是略过今天的歪路,记录一下我的安装步骤. Xun ...

  3. 实践中 XunSearch(讯搜)更新索引方案对比

    检测PHP-SDK的运行条件(查看是否支持XunSearch)   $prefix/sdk/php/util/RequiredCheck.php $prefix #替换成你的安装目录 使用 XunSe ...

  4. [Linux] PHP程序员玩转Linux系列-腾讯云硬盘扩容挂载

    1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...

  5. Xunsearch 中文全文搜索

    原文地址:http://www.yiichina.com/code/661 官网地址:http://www.xunsearch.com/ 1.安装 wget http://www.xunsearch. ...

  6. 搜索服务器xunsearch实现

    安装方法:   centos 6.6 64位   histroy:   12  cd /srv/   13  wget http://www.xunsearch.com/download/xunsea ...

  7. 利用 Xunsearch 搭建搜索引擎、内容搜索实战

    Xunsearch 是开源免费.高性能.多功能,简单易用的专业全文检索技术方案,是目前非常知名的开源搜索引擎. 安装完Xunserach,还需要安装PHP SDK,才能进行搜索. ----- 本人已在 ...

  8. 解决xunsearch热门搜索,不按照数量排序问题

    public function getHotQuery($limit = 6, $type = 'total') { $ret = array(); $limit = max(1, min(50, i ...

  9. PHP+mysql数据库开发搜索功能:中英文分词+全文检索(MySQL全文检索+中文分词(SCWS))

    PHP+mysql数据库开发类似百度的搜索功能:中英文分词+全文检索 中文分词: a)   robbe PHP中文分词扩展: http://www.boyunjian.com/v/softd/robb ...

随机推荐

  1. Android仿IOS底部弹出选择菜单ActionSheet

    使用Dialog的实现方式,解决原ActionSheet使用Fragment实现而出现的部分手机取消按钮被遮盖的问题 java部分代码: import android.app.Dialog; impo ...

  2. 读jQuery之六(缓存数据)

    很多同学在项目中都喜欢将数据存储在HTMLElement属性上,如 1 2 3 4 <div data="some data">Test</div> < ...

  3. css滚动相关问题记录

    1) 关于滑动加速优化,可以通过css进行处理 例如,html如下: <div class="content-dialog"> <h1>活动规则</h ...

  4. javascript练习题·(1)

    1.参数集合是什么? (function(){ return typeof arguments; })(); 的结果是? typeOf只能以字符串的形式返回数据类型 js中包括6种数据类型--Numb ...

  5. PHP使用前的了解

    PHP简介 PHP 是什么? PHP(全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器")是一种通用开源脚本语言. PHP 脚本在服务器上执行 ...

  6. yii2:引用项目外的文件或类

    yii2:引用项目外的文件或类 以项目:frontend为例,文件目录如下: frontend/    frontend/controllers    frontend/views    fronte ...

  7. idea debug调试快捷键

    F9            resume programe 恢复程序 Alt+F10       show execution point 显示执行断点 F8            Step Over ...

  8. Agilent RF fundamentals (11)-Vector modulator

     Vector modulator 矢量调制器:调整信号的幅度和相位 http://www.21ic.com/app/test/201805/762401.htm

  9. Wix是什么?

    Wix是Windows Installer XML的简称,其通过类XML文件格式来指定了用于创建Windows Installer安装包数据库的元素.关于Wix的详细介绍,http://wixtool ...

  10. MS SQL Server2000转换成MySQL

    按计划今天着手进行将后台数据库从MS SQL Server2000转换成MySQL5.1.3.目的是便于发布软件的测试版本. 1. 驱动: mysql-connector-odbc-5.1.11-wi ...