zoukankan      html  css  js  c++  java
  • 4.跟我学solr---SolrRequestHandler具体解释

    概述

    我们在使用solr admin在做查询的时候,能够看到Request-Hander(qt)输入栏中有“/select”这样一个uri。当我们点击查询的时候所发起的请求是这种。http://localhost:8080/solr/collection1/select?q=feature&wt=json&indent=true&_=1399167234058,我们能够看到"/select"被自己主动地加到请求的url里面。

    那么solr服务在接受到这个请求的时候。就会依据"/select"这段uri来选择相应的RequestHandler。


    那“/select”这个RequestHandler究竟配置在哪里呢?我们打开我们之前所配置的SOLR_HOME文件夹。在SORL_HOMEcollection1conf文件夹下的solrconfig.xml文件里。我们找到例如以下配置,这个就是“/select”所对相应的RequestHandler了。

       <requestHandler name="/select" class="solr.SearchHandler">
        <!-- default values for query parameters can be specified, these
             will be overridden by parameters in the request
          -->
         <lst name="defaults">
           <str name="echoParams">explicit</str>
           <int name="rows">10</int>
           <str name="df">text</str>
         </lst>
      </requestHandler>

    Configuration

    多个handlers (包含是同样的类的实例,却拥有不同的配置) 可以在solrconfig.xml 中配置。


      <requestHandler name="/foo" default="true" class="my.package.CustomRequestHandler" />
      <requestHandler name="/bar" class="my.package.AnotherCustomRequestHandler" />
        <!-- initialization args may optionally be defined here -->
         <lst name="defaults">
           <int name="rows">10</int>
           <str name="fl">*</str>
           <str name="version">2.1</str>
         <lst>
      </requestHandler>
    
      <requestHandler name="/baz" class="my.package.AnotherCustomRequestHandler">
      <requestHandler name="/update/my-pdf-reader" class="my.package.MyPdfHandler">

    Handler Resolution

    client能够通过带有“gt”这个參数的“/select/ url”请求。也能够通过在solrconfig.xml配置的方式来决定要訪问的SolrRequestHandler。对于上面的样例,如果它执行在localhost:8080/solr/上。你能够这样訪问
      http://localhost:8080/solr/select/?

    qt=foo&...
      http://localhost:8080/solr/select/?

    qt=bar&...
      http://localhost:8080/solr/baz?...
      http://localhost:8080/solr/update/my-pdf-reader?...


    Solr是通过以下的步骤去选择一个handler并处理请求的.....
    寻找name属性跟请求中的qt參数匹配的handler
    寻找在配置文件里“default=true”的handler
    寻找在配置文件里name属性为“standad”的handler
    使用StandardRequestHandler的默认实例


    注意!假设你的配置文件solrconfig.xml 包括有name属性为"/select", "/update", 或"/admin",那么你的程序将不会沿用标准的请求处理过程。而将会是你自己自己定义的逻辑。



    扩展自己的Handler

    实现一个SolrRequestHandler 最简单的方法是去扩展 RequestHandlerBase 类。

    也參考以下的几个Request Handlers。


    solr自带的Handler

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

    Search handlers:

    Update handlers:



  • 相关阅读:
    Django orm self 自关联表
    postgresql数据库导入导出
    celery在项目中的使用
    P3405 [USACO16DEC]Cities and States S 【map使用】
    P1030 求先序排列 【已知中序后序求先序】
    P1305 新二叉树 【寻找根节点进行先序遍历】
    P1229 遍历问题 【已知先序后序求中序种类】
    P1364 医院设置 【带权值的树的重心】
    P3884 [JLOI2009]二叉树问题 【离线tarjan或数的向上遍历】
    P1827 [USACO3.4]美国血统 American Heritage【树的遍历】
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5199280.html
Copyright © 2011-2022 走看看