tonglin0325的个人主页

Solr学习笔记——查询

1.进入Solr管理界面http://localhost:8983/solr/

可以看到Query中有若干的参数,其意义如下(参考:http://www.jianshu.com/p/3c4cae5dee8d

Solr的查询语法:

Solr默认有三种查询解析器(Query Parser):

  • Standard Query Parser
  • DisMax Query Parser
  • Extended DisMax Query Parser (eDisMax)

第一种是标准的Parser,最后一种是最强大的,也是Sunspot默认使用的Parser。

支持的参数:#

  • defType: 选择查询解析器类型,例如dismax, edismax
  • q:主查询参数(field_name:value)
  • sort:排序,例如score desc,price asc
  • start:起始的数据偏移offset,用于分页
  • raws:一次返回的数量,用于分页
  • fq:filter query 返回结果的过滤查询
  • fl:fields to list 返回的字段(*, score)
  • debug:返回调试信息,debug=timing,debug=results
  • timeAllowed:超时时间
  • wt:response writer返回的响应格式

下面是DisMax Parser可以使用的:

  • qf:query fields,指定查询的字段,指定solr从哪些field中搜索,没有值的时候使用df
  • mm:最小匹配比例
  • pf:phrase fields
  • ps:phrase slop
  • qs:query phrase slop

特殊符号意义:#

  • ?:te?t 单个字符匹配
  • :tes 多个字符匹配
  • :fuzzy searches(模糊匹配),roam,roams/foam/foams
  • count:{1 TO 10}:range search 范围检索
  • ^:Boosting a Term(升级权重),jakarta^4 apache, “酒店”^4 “宾馆”
  • ^=:Constant Score with(指定分数),(description:blue OR color:blue)^=1.0 text:shoes

逻辑操作#

  • AND 或者 &&
  • NOT 或者 !
  • OR 或者 !!
    • 必须满足
    • 剔除,比如 title: -安徽,返回的是title中不含有”安徽”的所有结果