SolrJ查询参数详解

Using SolrJ

 

参数描述
defType指定用于处理查询语句(参数q的内容)的查询解析器,eg:defType=lucene
sort指定响应的排序方式:升序asc或降序desc.同时需要指定按哪个字段进行排序。eg: sort=price desc,score asc
start指定显示查询结果的开始位置,默认是0
rows指定一次显示多少行查询结果,默认是10
fq指定用于对查询结果进行过滤的过滤器(也看作是一种query) eg: fq=price:[100 To *]&fq=setction:0
fl指定查询结果中返回的字段,该字段的stored=”true”或docValues=”true” ,eg:fl=id,title,product(price, popularity)
debug指定查询结果中携带额外的调试信息:时间信息debug=timing,“explain”信息debug=results,所有调试信息debug=query
explainOtherAllows clients to specify a Lucene query to identify a set of documents. If non-blank,the explain info of each document which matches this query, relative to the main query (specified by the q parameter) will be returned along with the rest of the debugging information.
timeAllowed指定查询处理的时间,单位毫秒。如果查询在指定的时间未完成,则只返回部分信息
segmentTerminateEarlyIndicates that, if possible, Solr should stop collecting documents from each individual (sorted) segment once it can determine that any subsequent documents in that segment will not be candidates for the rows being returned. The default is false.
omitHeader当设为true时,返回结果不包含头部信息(例如请求花费的时间等信息),默认是false
wt执行响应的输出格式:xml或json等
logParamsList指定哪些参数需要写入log, eg:logParamsList=q,fq
echoParams指定响应头部包含哪些参数,取值为none/all/explicit(默认值)
q使用标准查询语法定义的查询语句,必填
q.op查询表达式的默认操作符,取值AND或者OR
df默认查找的字段
shards单节点多core查询,多core之间用逗号隔开
collection分布式多core查询,多core之间用逗号隔开
fl- field

作为逗号分隔的列表指定文档结果中应返回的 Field 集。默认为 “*”,指所有的字段。“score” 指还应返回记分。例如 *,score
将返回所有字段及得分。用solrj的bean时,得在query中指定query.set("fl", "*,score");

hlhl=true,表示采用高亮
hl.fl可以用h1.fl=field1,field2 来设定高亮显示的字段, 用空格或逗号隔开的字段列表。要启用某个字段的highlight功能,就得保证该字段在schema中是stored。如果该参数未被给出,那么就会高 亮默认字段 standard handler会用df参数,dismax字段用qf参数。你可以使用星号去方便的高亮所有字段。如果你使用了通配符,那么要考虑启用 hl.requiredFieldMatch选项。
hl.requireFieldMatch如果置为true,除非该字段的查询结果不为空才会被高亮。它的默认值是false,意味 着它可能匹配某个字段却高亮一个不同的字段。如果hl.fl使用了通配符,那么就要启用该参数。尽管如此,如果你的查询是all字段(可能是使用 copy-field 指令),那么还是把它设为false,这样搜索结果能表明哪个字段的查询文本未被找到
hl.usePhraseHighlighter如果一个查询中含有短语(引号框起来的)那么会保证一定要完全匹配短语的才会被高亮
hl.highlightMultiTerm如果使用通配符和模糊搜索,那么会确保与通配符匹配的term会高亮。默认为false,同时hl.usePhraseHighlighter要为true
hl.snippets这是highlighted片段的最大数。默认值为1,也几乎不会修改。如果某个特定的字段的该值被置为0(如f.allText.hl.snippets=0),这就表明该字段被禁用高亮了。你可能在hl.fl=*时会这么用
hl.fragsize每个snippet返回的最大字符数。默认是100.如果为0,那么该字段不会被fragmented且整个字段的值会被返回。大字段时不会这么做
hl.mergeContiguous如果被置为true,当snippet重叠时会merge起来
hl.maxAnalyzedChars会搜索高亮的最大字符,默认值为51200,如果你想禁用,设为-1
 hl.alternateField如果没有生成snippet(没有terms 匹配),那么使用另一个字段值作为返回
hl.maxAlternateFieldLength如果hl.alternateField启用,则有时需要制定alternateField的最大字符长度,默认0是即没有限制。所以合理的值是应该为
hl.formatter一个提供可替换的formatting算法的扩展点。默认值是simple,这是目前仅有的选项。显然这不够用,你可以看看org.apache.solr.highlight.HtmlFormatter.java 和 solrconfig.xml中highlighting元素是如何配置的。
注意在不论原文中被高亮了什么值的情况下,如预先已存在的em tags,也不会被转义,所以在有时会导致假的高亮
hl.fragmenter

这个是solr制 定fragment算法的扩展点。gap是默认值。regex是另一种选项,这种选项指明highlight的边界由一个正则表达式确定。这是一种非典型 的高级选项。为了知道默认设置和fragmenters (and formatters)是如何配置的,可以看看solrconfig.xml中的highlight段。
regex 的fragmenter有如下选项:hl.regex.pattern:正则表达式的patternhl.regex.slop:这是hl.fragsize能变化以适应正则表达式的因子。默认值是0.6,意思是如果hl.fragsize=100那么fragment的大小会从40-160.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值