• coreseek/sphinx中的匹配模式


    所谓匹配模式就是用户怎样依据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);
  • 相关阅读:
    python操作pymysql
    使用raise语句抛出异常
    异常处理
    01.正太分布模型
    常用正则表达式总结(47条)
    Scrapy项目_苏宁图书信息
    Scrapy项目_阳光热线问政平台
    Scrapy 项目:腾讯招聘
    Python爬虫_糗事百科
    Python爬虫_百度贴吧(title、url、image_url)
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10786698.html
  • Copyright © 2020-2023  润新知