简介
QueryResponseWriter是solr的一个插件,与上一章讲的SolrRequestHandler是配对的,用于定义solr查询结果的返回格式。
回到solr admin的查询页面,我们可以看到wt下拉框中的可选项包括,json,xml,csv等不同的返回格式,查询结果将会以所选择的返回格式返回。solr作为一个独立的web服务,在开发过程中都希望把它当作一个单独的专门提供搜索服务的平台,因此在与solr对接的时候,就会面临以什么格式交互的问题,幸运的是,solr已经提供了多种返回交互格式,方便大家在与solr服务交互的过程中根据项目的需求选择合适的返回格式。
配置
多个writer (包括是相同的类的实例,却拥有不同的配置) 能够在solrconfig.xml 中配置。
<queryResponseWriter name="foo" default="true" class="my.package.CustomResponseWriter"/>
<queryResponseWriter name="bar" class="my.package.AnotherCustomResponseWriter"/>
<queryResponseWriter name="blat" class="my.package.AnotherCustomResponseWriter">
<int name="some_init_param">5</int>
</queryResponseWriter>
Response Writer Resolution
客户端可以通过传入参数'wt'来选择对应的返回格式。例如上面所定义的例子,如果我们访问的是http://localhost:8080/solr的话,我们可以通过以下方式请求。
http://localhost:8983/solr/select/?wt=foo&q=solr
http://localhost:8983/solr/select/?wt=bar&q=solr
http://localhost:8983/solr/select/?wt=blat&q=solr
http://localhost:8983/solr/select/?q=solr
solr选择ResponseWriter的步骤如下:
1.根据'wr'参数选择对应的writer
2.寻找在配置文件中“default=true”的writer
3.寻找在配置文件中name属性为“standad”的writer
4.使用匿名的XmlResponseWriter作为writer
solr自带的Handler
-
The Javadocs contain a complete list of Response Writers. Many of which have their own wiki pages...