目前我有这段代码,它在一个核心上添加数据,如果我们有多个核心在运行,并且有相同的字段名,那么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();
}
}
核心会有不同的URLs,你可以在代码中使用这些URLs。
HttpSolrServer server0 = new HttpSolrServer("http://localhost:8983/solr/core0");
HttpSolrServer server1 = new HttpSolrServer("http://localhost:8983/solr/core1");
你也可以使用 "collection "参数来定义你想使用的核心。
server.add("core0", doc);
server.commit("core0");