如何在Apache Solr(SolrJ)中使用Java API在特定核心上添加文档

问题描述 投票:2回答:2

目前我有这段代码,它在一个核心上添加数据,如果我们有多个核心在运行,并且有相同的字段名,那么solar如何决定写在哪个核心上,因为这段代码是模糊的!

import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.common.SolrInputDocument;

import java.io.IOException;

public class SolrjPopulator {
  public static void main(String[] args) throws IOException, SolrServerException {
    HttpSolrServer server = new HttpSolrServer("http://localhost:8983/solr");
    for(int i=0;i<1000;++i) {
      SolrInputDocument doc = new SolrInputDocument();
      doc.addField("cat", "book");
      doc.addField("id", "book-" + i);
      doc.addField("name", "The Legend of the Hobbit part " + i);
      server.add(doc);
      if(i%100==0) server.commit();  // periodically flush
    }
    server.commit();
  }
}
java solr lucene solrj
2个回答
5
投票

核心会有不同的URLs,你可以在代码中使用这些URLs。

HttpSolrServer server0 = new HttpSolrServer("http://localhost:8983/solr/core0");
HttpSolrServer server1 = new HttpSolrServer("http://localhost:8983/solr/core1");

0
投票

你也可以使用 "collection "参数来定义你想使用的核心。

server.add("core0", doc);
server.commit("core0");

https:/lucene.apache.orgsolr7_1_0/solr-solrjorgapachesolrclientsolrjSolrClient.html#add-java.lang.String-org.apache.solr.common.SolrInputDocument-。

© www.soinside.com 2019 - 2024. All rights reserved.