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

crcmnpdw  于 2022-11-07  发布在  Lucene
关注(0)|答案(2)|浏览(209)

我们如何向运行在Apcache Solr上的特定内核添加数据。目前我有这段代码,它在单个内核上添加数据,如果我们有多个内核运行,具有相同的字段名称,太阳能如何决定写入哪个内核,因为这段代码是模糊的!
我们无法定义哪个核心/集合/索引!!!

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();
  }
}
qnakjoqk

qnakjoqk1#

内核将具有不同的URL,您可以在代码中使用这些URL:

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

1yjd4xko2#

您也可以使用“collection”参数来定义您要使用的核心:

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

https://lucene.apache.org/solr/7_1_0//solr-solrj/org/apache/solr/client/solrj/SolrClient.html#add-java.lang.String-org.apache.solr.common.SolrInputDocument-

相关问题