一、Solr的查询表单详解
Solr管理控制台的查询表单
所有与solr核心服务有关的交互,如查询处理,都是通过HTTP请求执行的。填写查询表单之后,创建一个HTTP Get请求并发送给Solr。
Solr查询表单的所有参数
查询参数概览表:
参数 | 取值 | 描述 |
---|---|---|
defType | /select | 选择用来处理查询的查询分析器。 |
q(query) | iPod | 主查询参数。根据该参数中的词项与文档的相似度,对文档评分 |
fq(filter query) | manu:Belkin | 过滤查询;通过过滤器筛选结果集文档,但不影响评分。在此例中,我们将制造商字段manu限定在Belkin,对结果进行筛选 |
sort | price asc | 指定排序字段与排序方式。根据响应的分数或另一个指定的特性对查询的响应进行正序或倒序排序。 在此例中我们希望按照价格从低到高升序排列文档。 |
start | 0 | 指定搜索结果的起始页。(默认0)。 |
rows | 10 | 页面大小。控制一次返回多少条数据(默认10) |
fl(field) | name,price,features,score | 在结果集中每个文档返回的字段列表。score字段是内置字段,用于保存每个文档的查询相关度得分。必须显式地请求score字段,它才会返回。 |
df(default) | text | 未指定搜索字段的任意查询词项的默认搜索字段;text是示例服务器的全包含(catch-all)字段 |
wt(writer) | xml | 响应输出类型,控制响应输出的格式。 |
查询表单的http get请求分解:
http://127.0.0.1:8983/solr/collection1/select?q=iPod&
fq=manu%3ABelkin&
sort=price+asc&
start=0&
rows=10&
fl=name%2Cprice%2Cfeatures%2Cscore&
df=text&
wt=xml&
indent=true
注意:HTTP GET请求的参数间不包括换行,这里的换行只是为了更加容易理解。
查询表单不是为最终用户设计的,而是solr为开发者和管理员提供的一个查询提交途径。使用solr应用程序,需要为用户开发搜索界面。
二、Solr的搜索返回机制
前面介绍了Solr的查询请求提交,现在了解一下solr的搜索返回机制。本小节的核心是Solr返回的查询匹配的文档集,还包括为达到优质搜索体验solr客户端需要处理的其他信息。搜索体验优化由solr客户端负责。solr返回原始的搜索结果数据,并提供核心的搜索功能,要为用户提供优质的搜索体验,则需要根据这些结果和功能进行自主设计与开发。
以下为示例结果查询所返回的搜索结果。搜索结果是XML格式,按照价格从低到高排序。每一个文档均包含iPod关键字。因为只有两个搜索结果,所以没有分页。
<?xml version="1.0" encoding="UTF-8"?>
<response>
<!-- 响应的头部元素包含该查询的状态信息,例如,执行时间(Qtime)以及返回相应的查询参数。 -->
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime"