首页 > 代码库 > 5.跟我学solr---QueryResponseWriter具体解释

5.跟我学solr---QueryResponseWriter具体解释

简单介绍

 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

client能够通过传入參数‘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


眼下solr提供例如以下writer给大家使用,以下给出的solr官方文档中writer的文档,假设大家认为有必要让笔者具体解析每一个writer的使用方法,能够回复一下,笔者将会在接下来的章节中为大家解说每一个writer的具体使用方法。

  • The Javadocs contain a complete list of Response Writers. Many of which have their own wiki pages...

    • SolJSON

    • SolPHP

    • SolPython

    • Ruby Response Format

    • CSVResponseWriter

    • VelocityResponseWriter

    • XMLResponseFormat

    • XsltResponseWriter

    • javabin