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
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
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.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.query:facet查询关键词。
facet.field:facet返回结果字段。
facet.prefix:facet查询前缀。
主要用于地理位置查询。详情参考:http://wiki.apache.org/solr/SpatialSearch
“:” 指定字段查指定值,如返回所有值*:*
“?”表示单个任意字符的通配
“*” 表示多个任意字符的通配(不能在检索的项开始使用*或者?符号)
“~”表示模糊检索,如检索拼写类似于”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}
” 转义操作符,特殊字符包括+ -2 && || ! ( ) { } [ ] ^ ” ~ * ? : “。
影响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
Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有