solr的Query Syntax and Parsing分析(一)

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
这是一些常用的普通参数设置:
defType:这个是默认的搜索解析方式:

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,则返回结果包含头信息:

solr的Query Syntax and Parsing分析(一)

wt:wt选择了solr格式化查询结果的Response Writer。可以在Response Writer章节阅读详细信息。 
如果没有设定,将会使用JSON格式返回。

solr的Query Syntax and Parsing分析(一)

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