Solr 查询参数

转载请声明出处:http://blog.csdn.net/wbcg111/article/details/47863261

solr常用查询参数

  • q:查询关键词。支持 AND,OR ,*,?。支持多字段查询,模糊匹配。
  • fq:filter query,过虑查询。
  • sort:排序规则。默认按score排序。
  • start, rows:分页参数。start:开始的位置,rows:返回条数(page size)。
  • fl: 用来指定文档结果中应返回的 Field 集。默认为 “*”,指所有的字段。用逗号分隔的列表。
  • df:默认的查询字段。
  • Raw Query Parameters:原始查询参数。
  • wt:writer type,指定输出格式,可以有 xml, json, php, python,csv,ruby。
  • indent:返回的结果是否缩进,默认关闭,用 indent=true|on 开启,一般调试json,php,python,ruby输出- 才有必要用这个参数。

debugQuery:调试数据时可能会用到,有四个可选参数值

1 timing – 提供调试对于组件时间耗费等信息
2 query — 提供调试关于查询信息
3 results — 提供调试关于结果信息
4 true – 设置为true,相当于&debugQuery=true

dismax参数

  • q.alt: 当q字段为空时,用于设置缺省的query,通常设置q.alt为:
  • qf: query fields,指定solr从哪些field中搜索。
  • mm: Minimum ‘Should’ Match。 Solr支持三种查询clause,即“必须出现”, “不能出现”和“可以出现”,分别对应于AND, -, OR。
  • pf:boosting phrases over words。用于指定一组field,当query完全匹配pf指定的某一个field时,来进行boost。
  • ps: Phrase Slop. 短语坡度。短语查询的坡度量用在pf字段,影响boost。
  • qs:Query Phrase Slop。查询短语坡度。查询短语坡度是指短语查询明确包含用户查询的字符串(在qf字段,影响匹配)。
    Amount of slop on phrase queries explicitly included in the user’s query string (in qf fields; affects matching)。
  • tie:tie breaker。float值作为决胜局中DisjunctionMaxQueries使用(应该是远小于1)。
  • bq: Boost Query。对某个field的value进行boost,例如brand:xq^5.0。
  • bf:Boost Functions。用函数的方式计算boost。
    1. sum(x,y,…) 返回多个值的和。
    2. sub(x,y)返回 x-y
      更多的函数,可参考:http://wiki.apache.org/solr/FunctionQuery
      详情参考:http://wiki.apache.org/solr/DisMaxQParserPlugin

edismax参数

q.alt,qf,mm,pf,ps,qs,tie,bq,bf同上。

  • uf:User Fields。用户字段。制定模式的字段可以被用户显示的查询。此参数支持通配符。Specifies which schema fields the end user shall be allowed to query for explicitly. This parameter supports wildcards.
  • pf2:Phrase bigram fields。短语两字母字段。e.g. “the brown fox jumped” is queried as “the brown” “brown fox” “fox jumped”。
  • pf3:Phrase trigram fields。短语三字母字段。e.g. “the brown fox jumped” is queried as “the brown fox” “brown fox jumped”。
  • ps2:短语两字母坡度。如果未指定,将使用”ps”。
  • ps3:短语三字母坡度。如果未指定,将使用”ps”。
  • boost:Boost Function, multiplicative。作为bf,score=bf*score。
  • stopwords:单词停用,true 或false。
  • lowercaseOperators:此参数用于控制小写单词作为布尔运算符,如”and” and “or”。设置与lowercaseOperators= true来允许此。默认为true。
    详情参考:http://wiki.apache.org/solr/ExtendedDisMax

hl(高亮)参数

  • hl.fl:高亮字段
  • hl.simple.pre:高亮字段简单前缀。例如:

    hl.simple.post:高亮字段简单后缀。例如:

    hl.requireFieldMatch: 默认值是false,意味着它可能匹配某个字段却高亮一个不同的字段。如果hl.fl使用了通配符,那么就要启用该参数。尽管如此,如果你的查询是all字段(可能是使用copy-field 指令),那么还是把它设为false,这样搜索结果能表明哪个字段的查询文本未被找到。如果置为true,除非该字段的查询结果不为空才会被高亮。
  • hl.usePhraseHighlighter:如果一个查询中含有短语(引号框起来的)那么会保证一定要完全匹配短语的才会被高亮。
  • hl.highlightMultiTerm:如果使用通配符和模糊搜索,那么会确保与通配符匹配的term会高亮。默认为false,同时hl.usePhraseHighlighter要为true。
    更多参数,请参考:http://www.chepoo.com/solr-highlight-query-instance.html

facet参数

  • facet.query:facet查询关键词。
  • facet.field:facet返回结果字段。
  • facet.prefix:facet查询前缀。
  • spatial参数
    主要用于地理位置查询。详情参考:http://wiki.apache.org/solr/SpatialSearch

Solr的检索运算符

  • “:” 指定字段查指定值,如返回所有值:
  • “?”表示单个任意字符的通配
  • ” 表示多个任意字符的通配(不能在检索的项开始使用或者?符号)
  • “~”表示模糊检索,如检索拼写类似于”roam”的项这样写:roam~将找到形如foam和roams的单词;roam~0.8,检索返回相似度在0.8以上的记录。
    邻近检索,如检索相隔10个单词的”apache”和”jakarta”,”jakarta apache”~10
  • “^”控制相关度检索,如检索jakarta apache,同时希望去让”jakarta”的相关度更加好,那么在其后加上”^”符号和增量值,即jakarta^4 apache
  • 布尔操作符AND、&&
  • 布尔操作符OR、||
  • 布尔操作符NOT、!、-(排除操作符不能单独与项使用构成查询)
  • “+” 存在操作符,要求符号”+”后的项必须在文档相应的域中存在。
  • ( ) 用于构成子查询。
  • [] 包含范围检索,如检索某时间段记录,包含头尾,date:[200707TO 200710]。
  • {}不包含范围检索,如检索某时间段记录,不包含头尾。
  • date:{200707 TO 200710}
    ” 转义操作符,特殊字符包括+ -² && || ! ( ) { } [ ] ^ ” ~ * ? : “。

solr调优资料

影响solr性能因素:http://wiki.apache.org/solr/SolrPerformanceFactors
Solr Performance Data:http://wiki.apache.org/solr/SolrPerformanceData
Benchmarking Solr:http://wiki.apache.org/solr/BenchmarkingSolr
Solr性能问题解决:http://wiki.apache.org/solr/SolrPerformanceProblems
改进搜索速度:http://wiki.apache.org/lucene-java/ImproveSearchingSpeed
改进索引速度:http://wiki.apache.org/lucene-java/ImproveIndexingSpeed

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

seakot

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值