solr支持多种查询语句,搜索应用的设计者可以极大的灵活应用控制查询语句。
1.简介
在手册中,这小节分为四部分:
• The Standard Query Parser
• The DisMax Query Parser
• The Extended DisMax Query Parser
• Other Parsers
另外注意:这些实现都是通过QParserPlugin接口实现的,我们也可以实现自己的查询通过extend这个类。这里有一篇是计入如何实现自己的解析器插件的:http://blog.csdn.net/zyb243380456/article/details/7448969
1.1 Common Query Parameters
sort:排序
start:开始显示序号,用于分页显示;
rows:每次显示多少个,与start配合完成分页;
fq:查询过滤器。这块可以认为是对搜索结果的进一步约束,根据搜索条件进一步缩小范围;
fl:搜索结果的显示限制,这个的设置需要在field定义的时候,stored="true" or docValues="true"这两个一个进行定义;
debug:调试的时候使用,打印一些调试信息;
explainOther:解释信息。解释为什么符合本次搜索;
timeAllowed:定义query允许查询的时间,如果超时未完成,则部分信息进行返回;
segmentTerminateEarly:这个参数可以设成true或false。
如果设成true,且mergePolicyFactory是通过sort设定了排序参数的 SortingMergePolicyFactory,solr将会使用EarlyTerminatingSortingCollector。
如果使用了提前终止,responseHeader中将会设置segmentTerminatedEarly信息。
类似于使用timeAllowed,当提前终止,numFound,Facet以及stats不会计算整个结果集的信息。
默认情况segmentTerminateEarly = false。
omitHeader:如果设置为true,则返回结果包含头信息:
wt:wt选择了solr格式化查询结果的Response Writer。可以在Response Writer章节阅读详细信息。
如果没有设定,将会使用JSON格式返回。
logParamsList:默认,solr记录全部的参数日志信息;通过设置这个参数,重新定义哪些被写入log日志;
echoParams:返回头信息设置:
-explicit:默认值。只有实际请求中携带的参数,加上_parameter,添加到结果头中。
- all:query中所有的请求参数都返回。包括solrconfig.xml中的request handler 定义所有信息,请求中包括的参数。如果一个参数在handler和请求中都村子,则会在结果头中出现多次。
- none:结果头中删除“params”字段。请求参数的任何信息都不会返回。
参考博客:我使用的是solr6.6.1,他的版本应该更早一些,他理解的确实不错:
http://blog.csdn.net/wangyunzhong/article/details/78469136?locationNum=7&fps=1