2015-11-05 55 views
1

一个的SearchComponent我定义的配置如下:如何忽略searchhandler组件Solr中

<requestHandler name="/search" class="org.apache.solr.handler.component.SearchHandler"> 
    <lst name="defaults"> 
     <str name="spellcheck">true</str> 
     . 
     . 
     . 
    </lst> 
    <arr name="components"> 
     <str>search</str> 
     <str>search_custom_response_builder</str> 
    </arr> 
    </requestHandler> 

现在,当我执行查询,我想要的搜索和search_custom_response_builder被执行,但是出于测试目的,我想查看只有搜索的输出。我怎样才能做到这一点?我知道使用另一个Requesthandler是微不足道的,但我想知道是否有更好的方法。在那儿?我能以某种方式告诉Solr只从搜索中获得结果,而不是search_custom_response_builder?

+0

我从来没有尝试过这种方式,但我认为唯一可以实现你想要的就是通过Config API来做一些事情。你可以在这里阅读它:https://cwiki.apache.org/confluence/display/solr/Config+API。使用Config API,我认为您可以动态添加和删除组件,具体取决于您是否正在测试。一些谷歌搜索告诉我,SolrJ可能支持或不支持Config API,因此您可能需要在SolrJ之外处理对该API的调用。 – TMBT

回答

0

如果你看一下标准的例子,你可以看到,搜索组件具有启用标志,例如:

<!-- Clustering Component 

    You'll need to set the solr.clustering.enabled system property 
    when running solr to run with clustering enabled: 

     java -Dsolr.clustering.enabled=true -jar start.jar 

    http://wiki.apache.org/solr/ClusteringComponent 
    http://carrot2.github.io/solr-integration-strategies/ 
--> 
<searchComponent name="clustering" 
       enable="${solr.clustering.enabled:false}" 
       class="solr.clustering.ClusteringComponent" > 

所以,你可以传递与启动脚本的参数。我也相信你可能能够specify that in the core.properies file

如果你有一个最近的5.x Solr,你也可以看看Request Parameters and/or useParams,虽然我不确定组件块是否受支持(它应该)。在useParams的情况下,附加参数成为URL中的另一个变量。