sphinx匹配模式SetMatchMode
导读
今天在使用sphinx的用到了SetMatchMode匹配模式的SPH_MATCH_EXTENDED2,接下来就为大家介绍一下sphinx匹配模式SetMatchMode的可选参数,有需要的小伙伴可以参考一下:
1、SPH_MATCH_ALL模式:
(1)、描述:
匹配所有查询词(默认模式).
(2)、举例:
“change see” 能匹配“Be the change you wish to see in the world.”,不能匹配“To change my world”
2、 SPH_MATCH_ANY模式:
(1)、描述:
匹配查询词中的任意一个;
(2)、举例:
“change see” 能匹配“Be the change you wish to see in the world.”,能匹配“To change my world”,能匹配“Yet, those who have eyes apparently see little”
3、SPH_MATCH_PHRASE模式:
(1)、描述:
将整个查询看作一个词组,要求按顺序完整匹配
(2)、举例:
“the word” 能匹配“the word is a Puzzle”,不能匹配“the power of word”
4、SPH_MATCH_BOOLEAN模式:
(1)、描述:
将查询看作一个布尔表达式(允许使用特殊的操作符)
(2)、常用操作符:
操作符 | 示例 |
---|---|
AND | look & at |
OR | look | at |
NOT | look -at 或者 look !at |
Grouping | (look at) |
5、SPH_MATCH_EXTENDED模式:
(1)、介绍
将查询看作一个CoreSeek/Sphinx内部查询语言的表达式 . 从版本Coreseek 3/Sphinx 0.9.9开始, 这个选项被选项SPH_MATCH_EXTENDED2代替,它提供了更多功能和更佳的性能。
6、SPH_MATCH_FULLSCAN模式:
(1)、介绍:
强制使用下文所述的“完整扫描”模式来对查询进行匹配。
(2)、其他方式激活条件:
当查询串是空的(即长度字符串为零)或者 docinfo存储方式为extern时,SPH_MATCH_FULLSCAN模式自动代替其他指定的模式被激活。
(3)、注意事项:
在此模式下,所有的查询词都被忽略,尽管过滤器、过滤器范围以及分组仍然起作用,但任何文本匹配都不会发生。
7、SPH_MATCH_EXTENDED2模式:
(1)、介绍:
类似SPH_MATCH_EXTENDED,并支持评分和权重,扩展匹配模式允许使用一些像mysql的条件语句
(2)、用法:
操作符 | 示例 | 释义 |
---|---|---|
操作符OR | look | at | 匹配含有look或者at |
操作符NOT | look -at 或者 look !at | 区配包含hello,且不包含world |
字段搜索操作符@ | @descr look @content at | 匹配descr中有look及content中有at |
字段限位修饰符@[] | @descr[5] looks | 匹配descr字段前5个词中包含有looks |
多字段搜索符@() | @(descr,content) look | 匹配descr或content包含有look |
全字段搜索符@* | @* look | 区配任何一列包含有look |
阀值匹配符 | "the word is a Puzzle"/3 | 匹配至少包含有3个词 |
短语(phrase)搜索符 | "the word" | |
临近(proximity)搜索符 | "the word"~6 | 匹配the与word之间小于6个词 |
严格有序搜索符 | aaa<<bbb<<ccc | 匹配aaa,bbb,ccc按顺序出现 |
字段开始和字段结束修饰符 | ^the word$ | 匹配以the开始,word为结尾 |
隐式操作符AND | "the word" | the与word都要出现在匹配的记录中 |