2017-05-04 88 views
0

我在Solr的配置自定義HTTP濾波器,它首先被調用(org.apache.solr.servlet.SolrDispatchFilter之前執行),選擇那些命中solr的每個請求的定製請求頭。自定義過濾器會在所有傳入的solr請求中查找特定的請求標頭,並且只有當它存在時,纔會將其發送給solr進一步處理。設置使用SolrJ

我使用SolrJ進行某些查詢。查詢Solr到SolrJ時,有什麼方法可以設置HTTP請求標頭?

我的Solr和SorlJ版本是5.4.0

回答

0

您可以擴展HttpSolrClient創建自己的類MyHttpSolrClient和定製的executeMethod添加自定義請求頭的行爲。

public class MyHttpSolrClient extends HttpSolrClient { 

    public MyHttpSolrClient(String baseURL) { 
    super(baseURL); 
    } 

    public MyHttpSolrClient(String baseURL, HttpClient client) { 
    super(baseURL, client); 
    } 

    public MyHttpSolrClient(String baseURL, HttpClient client, ResponseParser parser) { 
    super(baseURL, client, parser); 
    } 

    protected NamedList<Object> executeMethod(HttpRequestBase method, final ResponseParser processor) throws SolrServerException { 

    // **Here you add your custom header** 
    method.addHeader("Name", "Value"); 

    return super.executeMethod(method, processor); 
    } 
}