隐藏

Solr查询参数

发布:2016/6/22 14:31:16作者:管理员 来源:本站 浏览次数:1328

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

q.op – 指定默认的连接符AND还是OR,将会覆盖schema.xml的defaultOperator配置。

qt: query type,指定那个类型来处理查询请求,一般不用指定,默认是standard。

Transformers 结果放回前处理document中的字段。如[docid] Luence document id 值。

verbose 获得中间步骤的详细信息.

version – 查询语法的版本,建议不使用它,由服务器指定默认值。

defType: 指定query parser,常用defType=lucene, defType=dismax, defType=edismax。自定义查询类型可参考:http://blog.chenlb.com/2009/02/use-custom-solr-queryparser.html

参考资料:
http://wiki.apache.org/solr/CommonQueryParameters
http://wiki.apache.org/solr/SolrQuerySyntax

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:高亮字段简单前缀。例如:

<em>

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

</em>

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