2012-11-15 39 views
1

我使用solrnet我創建了一個新的處理程序,並想改變標準查詢處理程序「選擇」到「新的」,而無需使用任何額外的參數,如「QT」或DEFTYPE。我們如何改變標準的查詢處理

目前 的 「http://本地主機:8080/Solr的/選擇Q =

的「http://本地主機:8080/Solr的/新Q =

請告訴我這是可以或不可以?

回答

3

SolrNet Google Groups員額Changing Handler Endpoint in SolrQueryExecutor指出,爲了做到這一點,你需要修改SolrQueryExecutor描述:

問:在我們Solr的情況下,我們從改變搜索端點「/ 選擇「到」/搜索「。我在SolrQueryExecuter中看到有一個 Handler屬性,它只返回「/ select」的DefaultHandler。有什麼方法可以改變它來使用我的端點嗎?

回答:這是正確的,您需要更改SolrQueryExecuter中的該屬性。 你如何做到這一點取決於你的IoC容器。例如,使用Remove()ISolrQueryExecuter的內置容器,並使用更改的處理程序屬性添加自己的容器。 這是一件非常罕見的事情,通常我只是設置不同的請求處理程序而不是端點,但是作爲常規名稱,那麼您可以使用qt參數來選擇一個。

1

如果您只想調用不同的請求處理程序,則可以獲取ISolrQueryExecuter的實例並相應地設置處理程序。不需要用具體的裝飾器替換內置的SolrQueryExecuter。

Startup.Init<T>(new SolrConnection("http://localhost:8080/solr")), 

var executor = ServiceLocator.Current.GetInstance<ISolrQueryExecuter<T>>() as SolrQueryExecuter<T>; 
executor.Handler = "/new"; 

順便說一句,你的網址似乎缺少集合的名稱。