2015-11-05 66 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中的另一個變量。