如何开始搜索?

<?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. 最详细的虚拟机安装centos7教程

    参考网站:https://jingyan.baidu.com/article/b7001fe1d1d8380e7382dd72.html 安装vmware10,vmware是收费的,作为学习,我介意还 ...

  2. Go语言实现FastDFS分布式存储系统WebAPI网关

    前言 工作需要,第一次使用 Go 来实战项目. 需求:采用 golang 实现一个 webapi 的中转网关,将一些资源文件通过 http 协议上传至 FastDFS 分布式文件存储系统. 一.Fas ...

  3. time模块详解

    本文转自这里: 在Python中,与时间处理有关的模块就包括:time,datetime以及calendar.这篇文章,主要讲解time模块. 在开始之前,首先要说明这几点: 在Python中,通常有 ...

  4. C++轮子队 敏捷冲刺

    团队Github地址:https://github.com/Pryriat/2048.git 敏捷开发——第1天 Alpha阶段第1次Scrum Meeting 敏捷开发起始时间 2018/10/27 ...

  5. 集合中的工具类Collections和Arrays

    集合框架的工具类: Collections: 方法sort(): List<String> list = new ArrayList<String>();        lis ...

  6. 记录个人数组、字符串自己常忘记的方法,以及ES常用处理方式

    记录自己在工作中,时不时使用,每次都要去查一下的基础方法.以及ES6经常使用的方法 一.Array 1.concat 合并数组 2.shift 获取数组第一个元素 unshift 向数组首位添加一个元 ...

  7. WWDC 2017, 让我们看看 iTunesConnect 有了哪些不同

    距离 WWDC 2017 过去已经有 7 天了,小伙伴们是不是已经发现我们的苹果后台和之前的界面有些略微的不同,如果有心的朋友下了 iOS 11 beta 版就会发现设备上的 App Store 界面 ...

  8. 让ListView中的控件失去焦点:android:descendantFocusability="blocksDescendants"

    值得注意的是,ListView中的控件不能设置clickable="true",否则会无视父控件的blockDescendants. 可参考: https://segmentfau ...

  9. 头文件string.h中的函数及使用方法

    来源:http://blog.csdn.net/tsyj810883979/article/details/5116817 字符串拷贝1 @函数名称:   strdup函数原型:   char *st ...

  10. 【解题报告】2014ACM/ICPC上海赛区现场赛B

    唉  谷歌出的神题,差点爆零了...三小时终于A掉 B题 题目大概是说从左上角的点出发,经过某路线最后回到原点,求每个格子被路线包含的圈数的平方和. 首先可以知道,对于某个格子来说,从该格子的任意一个 ...