添加文档时切换Solr核心

时间:2013-10-09 14:16:25

标签: solr solr4

我在Solr中使用了多个内核,在添加文档时,我使用方法查看对象并编写URL以匹配内核,如下所示:

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根据文档结构自动检测所需核心的方式?

1 个答案:

答案 0 :(得分:3)

Spring Data Solr提供MulticoreSolrServerFactory,可以处理和创建SolrServer个实例。它基本上是这样的。

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

  //..

}

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

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