0

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

4

1 回答 1

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);
于 2013-10-10T07:41:04.497 回答