定制自己的SolrRequestHandler

来源:互联网 发布:清代档案文献数据库 编辑:程序博客网 时间:2024/05/22 10:54

示例为solr-4.5.1


可以参照

<requestHandler name="/select" class="solr.SearchHandler">
     <lst name="defaults">
       <str name="echoParams">explicit</str>
       <int name="rows">10</int>
       <str name="df">text</str>
     </lst>

</requestHandler>

定义自己的

 <requestHandler name="/query/buildinggroup" class="solr.SearchHandler">

     <lst name="defaults">
        <str name="omitHeader">true</str>
       <str name="echoParams">explicit</str>
       <str name="wt">json</str>
       <str name="indent">true</str>
        <str name="fl">name,cat,address</str>
        <str name="rows">1000000</str>
           <str name="fq">name:张</str>
         <str name="sort">cat asc</str>
         <str name="q">*:*</str>
            <str name="group">true</str>
              <str name="group.field">cat</str>
     </lst>
  </requestHandler>

也可以扩展RequestHandlerBase类实现自己的handler

一、代码

package test.src;


import java.util.ArrayList;


import org.apache.solr.common.params.DisMaxParams;
import org.apache.solr.common.params.SolrParams;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.SimpleOrderedMap;
import org.apache.solr.handler.RequestHandlerBase;
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.response.SolrQueryResponse;


public class CustomizedRequestHandler extends RequestHandlerBase{


public String getDescription() {
return "Solr customized";
}


public String getSource() {
return "20150929.1545";
}


public void handleRequestBody(SolrQueryRequest req, SolrQueryResponse res)throws Exception {
SolrParams params = req.getParams();
System.out.println("customized ......");
res.add("query", req.getParamString());
}


}

打成jar放入webapp下的solr的Web-inf的lib目录下

二、配置

solrconfig.xml中配置

 <requestHandler name="/test" class="test.src.CustomizedRequestHandler">
     <lst name="defaults">
       <str name="echoParams">explicit</str>
       <str name="wt">json</str>
       <str name="indent">true</str>
       <str name="df">text</str>
     </lst>
  </requestHandler>

0 0
原创粉丝点击