如何在DismaxRequestHandler中使用solrj?

时间:2011-11-15 08:19:12

标签: java solr solrj edismax dismax

由于缺乏适当的文档,我无法弄清楚如何将dismaxRequestHandler与SolrJ一起使用。

另一方面,标准请求处理程序是SolrJ实现中的默认处理程序吗?

1 个答案:

答案 0 :(得分:2)

solrconfig.xml中的default="true"决定哪个是默认请求处理程序。 在使用solr的示例中,标准请求处理程序是默认值。

<requestHandler name="search" class="solr.SearchHandler" default="true">
.....
</requestHandler>

您可以轻松地将此属性映射到其他请求处理程序,以使其成为默认值。

edismax示例 -

<requestHandler name="/browse" class="solr.SearchHandler" default="true">
 <lst name="defaults">
   <str name="echoParams">explicit</str>
   <str name="defType">edismax</str>
   <str name="q.alt">*:*</str>
   <str name="rows">10</str>
   <str name="fl">*,score</str>
   <str name="qf">
      text^0.5 features^1.0 name^1.2 sku^1.5 id^10.0 manu^1.1 cat^1.4
   </str>
 </lst>
</requestHandler>

qt参数可以与Solrj一起用于查询特定的请求处理程序。

Solrj的例子 -

CommonsHttpSolrServer commonsHttpSolrServer = new CommonsHttpSolrServer("solr_path_url");
commonsHttpSolrServer.setParser(new XMLResponseParser());
ModifiableSolrParams params = new ModifiableSolrParams();
// Specify the Request handler
params.add("qt", "dismax_request_handler");
params.add("q", "query_string");
QueryResponse response = commonsHttpSolrServer.query(params);