所谓匹配模式就是用户怎样依据keyword在索引库中查找相关的记录。

SPH_MATCH_ALL, 匹配全部查询分词(默认模式);
如“手机配件”。不匹配 “我有一部手机”,但能够匹配 “手机坏了,须要找配件”。
由于“手机配件” 被分成 “手机”,“配件”两个词。匹配条件是必须同一时候包括这两个词。所以“我有一部手机”不符合匹配要求。

SPH_MATCH_ANY, 匹配查询词中的随意一个分词;
如“手机配件”。会匹配“我有一部手机”,由于索引库仅仅要包括任一个分词就可以被搜到,当然也能匹配“手机坏了,须要找配件”。

SPH_MATCH_PHRASE, 将整个查询看作一个词组。要求按顺序完整匹配;
这个与select * from [tab] where key like '%手机配件%'相相似,如“手机配件”,不匹配 “手机坏了,须要找配件”,但能够匹配 “你这儿有手机配件吗?

”。

SPH_MATCH_BOOLEAN, 将查询看作一个布尔表达式, 能够简单的与或非运算;
如( cat !dog ) | ( cat !mouse)
意思是搜索出全部匹配cat,但不匹配dog和mouse的查询分词。

SPH_MATCH_EXTENDED2,扩展匹配模式
将查询看作一个Sphinx/Coreseek内部查询语言的表达式。
在扩展查询模式中能够使用例如以下特殊操作符:

  • 或(OR)操作符:

hello | world

  • 非(NOT)操作符:

hello -world
hello !world

  • 字段(field)搜索符:

@title hello @body world
#title 字段中包括hello body字段中包括world

  • 字段限位修饰符

@body[50] hello
#body位数限制在50以内

  • 多字段搜索符:

@(title,body) hello world
#title 或 body字段中包括Hello world

  • 全字段搜索符:

@* hello
#仅仅要当中一列包括hello

  • 近似搜索符:

"hello world"~10
#hello world之间最多有10个词

  • 阀值匹配符:

"the world is a wonderful place"/3
#至少匹配3个词

  • 严格有序搜索符(即“在前”搜索符):

aaa << bbb << ccc
#aaa,bbb,ccc必须按先后顺序出现

  • 字段開始和字段结束修饰符

^hello  ...  world$
#限定必须以hello开头。以world结尾

如:"hello world" @title "example program"~10 @body python -(php|perl) @* code
要求同一时候匹配:
在文档的随意字段中找相邻的“hello”和“world”
文档的title字段中还必须包括 “example”和“program”这两个词,而且他们之间至多有10个(不包括10个)其它的词
同一时候。body字段必须含有词“python”。但既没有“php”也没有“perl”
任一字段中包括”code“

SPH_MATCH_EXTENDED, 同SPH_MATCH_EXTENDED2, 为了兼容旧版本号;

SPH_MATCH_FULLSCAN, 强制使用下文所述的“完整扫描”模式来对查询进行匹配;

注意,在此模式下。全部的查询词都被忽略。虽然过滤器、过滤器范围以及分组仍然起作用。但不论什么文本匹配都不会发生.

这里不做文本匹配,即使你传递查询词也将被忽略,一般作为过滤来用,比方说,我在餐厅索引中搜索北京的全部餐厅,我仅仅要将北京地名的id用SetFilter方法来过滤就可以。

PHP中通过setMatchMode函数来设置,如:
<?php
$sc = new SphinxClient();
$sc->setMatchMode(SPH_MATCH_ANY);

coreseek/sphinx中的匹配模式的更多相关文章

  1. fgrep---指定的输入文件中的匹配模式的行

    fgrep命令是用来搜索 file 参数指定的输入文件(缺省为标准输入)中的匹配模式的行.fgrep 命令特别搜索 Pattern 参数,它们是固定的字符串.如果在 File 参数中指定一个以上的文件 ...

  2. scala 中的匹配模式

    unapply 仅作匹配,不作其它输出.返回 Boolean 值 object UpperCase { def unapply(s: String): Boolean = s.toUpperCase ...

  3. Sphinx 匹配模式

    所谓匹配模式就是用户如何根据关键字在索引库中查找相关的记录. SPH_MATCH_ALL, 匹配所有查询分词(默认模式); 如“手机配件”,不匹配 “我有一部手机”,但可以匹配 “手机坏了,需要找配件 ...

  4. SQL中常用模糊查询的四种匹配模式&&正则表达式

    执行数据库查询时,有完整查询和模糊查询之分.一般模糊语句如下:SELECT 字段 FROM 表 WHERE 某字段 Like 条件 其中关于条件,SQL提供了四种匹配模式:1.%:表示任意0个或多个字 ...

  5. Javascript中正则表达式的全局匹配模式

    先看一道JavaScript题目,据说是国内某知名互联网企业的JavaScript笔试题,如果对正则的全局匹配模式不了解的话可能会对下面的输出结果感到疑惑. var str = "123#a ...

  6. 搭建coreseek(sphinx+mmseg3)详细安装配置+php之sphinx扩展安装+php调用示例(转)

    一个文档包含了安装.增量备份.扩展.api调用示例,省去了查找大量文章的时间. 搭建coreseek(sphinx+mmseg3)安装 [第一步] 先安装mmseg3 cd /var/install ...

  7. Coreseek/sphinx全文检索的了解

    Coreseek/sphinx全文检索的了解 概述: 全文检索是一种将文件里全部文本与检索项匹配的文字资料检索方法,全文检索是将存储于数据库中整本书.整篇文章中的随意内容信息查找出来的检索.它能够依据 ...

  8. 制作类似ThinkPHP框架中的PATHINFO模式功能

    一.PATHINFO功能简述 搞PHP的都知道ThinkPHP是一个免费开源的轻量级PHP框架,虽说轻量但它的功能却很强大.这也是我接触学习的第一个框架.TP框架中的URL默认模式即是PathInfo ...

  9. grep中正则匹配的使用

    如要匹配Computer或computer两个单词,可做如下操作: [Cc]mputer “.”允许匹配ASCII集中任意字符,或为字母,或为数字. 使用\{\}匹配模式结果出现的次数 匹配字母A出现 ...

随机推荐

  1. Mac osx 系统安装 eclipse

    https://jingyan.baidu.com/article/fea4511ad46a86f7bb9125e5.html

  2. Java的家庭记账本程序(K)

    日期:2019.3.10 博客期:043 星期日 呕吼~这里是编程菜鸟小Master,今天加油的把第二个模板套用了,更改了许多的设定,我想这一个程序的网页版也就到这里结束了,下面是一部分的展示图,想要 ...

  3. 【转】win10哪个版本最好用,推荐win10企业版LTSC

    https://msdn.itellyou.cn/ win10企业版LTSC又被称为win10企业版2019长期服务版本,这个版本小编认为是目前最好用的win10版本,在win10企业版2016长期服 ...

  4. docker - 容器lxc

    容器:是在用户空间进行隔离的组件叫做容器 常用的容器有lxc ----libcontainer---runc 需要隔离的资源有: Rootfs:每个容器对应的一个目录做为根目录 User: Hostn ...

  5. [Sublime]Sublime安装以及插件使用

    安装直接去官网下载安装了 安装Package Control关于安装Package Control,有两种方法. 一.自动安装 自动安装很方便,网上代码很多.我用的是Sublime Text3,通过V ...

  6. window编程_消息分类

    Window应用程序利用Windows消息(Message)与应用程序及系统进行信息交换.消息分为:消息号:有事先定义好的消息名标识字节参数(wParam):用于提供消息的附加信息长字节参数(lPar ...

  7. 潭州课堂25班:Ph201805201 tornado 项目 第七课 界面美化和静态文件处理(课堂笔记)

    tornado 相关说明 使用  Bootstrap 前端框架 可以在 bootCDN 这里找 jquery ,poppe.js 文件 美化项目 twittel 的开源项目, 在 static 目录下 ...

  8. Mysql概念及基本操作

    1.Mysql 概念 1.1 定义 数据库本质是一个C/S的套接字软件 关系型数据库:MySQL mariadb db2 非关系型:存取数据是以key:Value mongodb redis 1.2 ...

  9. linux 文件属性(转)

    1.  文件类型 - 普通文件 d 目录文件 l 链接文件 b 块设备文件 c 字符型设备文件 s socket文件 p 管道类型文件 块设备文件主要是指慢速设备,比如hd硬盘,数据主要是分块存储,所 ...

  10. Linux 上安装JDK

    JDK下载 下载 JDK Linux 版本(注意看自己安装 Linux 系统的位数,本人的是64位) 1.oracle 官网下载地址:jdk-7u80-linux-x64.gz(可能需要注册下载,嫌麻 ...