2013-10-09 89 views
0

我使用多個內核和Solr的,當它涉及到添加文件我使用的方法來看看對象和撰寫的URL核心如下搭配:開關Solr的內核添加文檔

SolrInputDocument solrDoc = getASolrInputDocumentFromSomewhere(); 
Object bean = request.getBean(); 
String core; 

if (bean instanceof EntityOne) 
    core = "coreone"; 
else if (bean instanceof EntityTwo) 
    core = "coretwo"; 
[...] 

SolrServer server = new HttpSolrServer("http://localhost:8983/solr/" + core); 

server.add(solrDoc); 
server.commit(); 

(這是不是我實際使用的代碼,它的縮短,擠壓到只提供了思路。)

這工作,但它是一個正確的做法還是有提供任何其他的可能性,允許設置核心甚至Solr根據文檔結構自動檢測所需內核的方式?

回答

3

Spring Data Solr提供了一個可以處理和創建SolrServer實例的MulticoreSolrServerFactory。它基本上是這樣工作的。

@SolrDocument(solrCoreName = "core1") 
private static class Bean1 { 

    //.. 

} 

factroy = new MulticoreSolrServerFactory(new HttpSolrServer("http://127.0.0.1:8983")); 

SolrServer solrServer = factory.getSolrServer(Bean1.class); 
+0

看起來更優雅。我會試一試! – Steven