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< td="">

匹配aaa,bbb,ccc按顺序出现

字段开始和字段结束修饰符 ^the word$

匹配以the开始,word为结尾

隐式操作符AND "the word"

the与word都要出现在匹配的记录中

 
posted @ 2023-07-24 16:57  私家菜地  阅读(179)  评论(1编辑  收藏  举报