solr学习日记···搜索-Request Handler

上一章大致介绍了一下solr的搜索请求处理过程。这一章就先详细介绍一下Request Handler(请求处理器)。
请求处理器作为solr基本上所有的请求入口,它的作用是接受请求并做出相应的处理。除了上一节提到的搜索请求,其实solr提供了其它各种各样的请求处理器。其中除了默认的搜索处理器SearchHandler,还有处理索引更新请求的UpdateRequestHandler。
下面就从几个方面介绍一下请求处理器:
1.配置
请求处理器的配置信息在配置文件solrconfig.xml中

  <!-- 默认搜索处理器 -->
  <requestHandler name="/select" class="solr.SearchHandler">
    <lst name="defaults">
      <str name="echoParams">explicit</str>
      <int name="rows">10</int>
    </lst>
  </requestHandler>
  <!-- 数据导入 -->
  <requestHandler name="/dataimport" class="solr.DataImportHandler">
     <lst name="defaults">   
        <str name="config">data-config.xml</str>   
     </lst>
  </requestHandler>

上面是两个请求处理器的配置,第一个是solr的默认搜索请求处理器,第二个是为了从数据库导入数据配置的一个数据导入的请求处理器(这个不是solr自带的需要自己下载jar包配置)。
先看requestHandler标签的参数,name参数定义了请求处理器的名称。例如在solr的管理界面中进行查询操作时:
查询操作
这里发送的请求地址中可以看到/select,那么solr根据配置信息该请求会被SearchHandler处理。此外,在官方文档中看到请求处理器可以处理其名字被嵌套的请求。例如请求地址为/select/hello,可以被名字为/select的处理器处理,前提是不存在名字为/select/hello的请求处理器。但我试了下默认的/select,报了404
测试
试了下修改配置信息也不行,如果有知道的朋友麻烦评论告知一下,谢谢。
第二个参数class就很明显了,定义的是请求处理器的类地址。这里应该和文本分析的配置一样,在某个包下的类可以用solr当前缀。
requestHandler标签中配置的是默认参数,row表示搜索返回的结果数,echoParams 表示返回调试结果时需要返回的定义参数。
2.类关系
solr自带的请求处理器基本上都继承了RequestHandlerBase。但如果要自定义solr的请求处理器类则只要实现SolrRequestHandler接口就行了。RequestHandlerBase也实现了SolrRequestHandler接口。
关于这些类的简介可以查看这里

猜你喜欢

转载自blog.csdn.net/qq_19656425/article/details/79416120