我使用 solrj 作为客户端将文档索引到 solr 云中(使用 solr4.5)
我需要根据tenant_id保存文档,因此我正在尝试文档路由。仅当使用 numShards 参数 ( http://searchhub.org/2013/06/13/solr-cloud-document-routing/ ) 创建集合时才可能实现这一点
我在 solr 云中有两个 solr 实例(example1/solr 和 example2/solr)和在 2181 端口运行的 exrenal Zookeeper。
两个实例都包含名为collection1的集合
我使用以下命令创建了另一个名为 newCollection 的集合(具有两个分片和两个副本)
http://localhost:8501/solr/admin/collectionsaction=CREATE&name=newCollection&numShards=2&replicationFactor=2&maxShardsPerNode=2&router.field=id
因此,在 example1/solr-> 中,我有 newCollection_shard1_replica1 和 newCollection_shard2_replica1,
在 example2/solr 中 -> 我有 newCollection_shard1_replica2 和 newCollection_shard2_replica2
我将 example1/solr/collection1/conf 复制到所有分片和副本
我重新启动了zookeeper服务器以及solr实例:
zookeeper->zkServer.cmd
example1/solr-> java -Dbootstrap_confdir=./solr/newCollection_shard1_replica1/conf -Dcollection.configName=myconf -DzkHost=localhost:2181 -jar start.jar
example2/solr->java -DzkHost=localhost:2181 -jar start.jar
(两个实例运行在不同的端口,一个运行在 8081,另一个运行在 8051)
我正在使用 solrj 客户端来索引文档
这是我的示例代码
String url="http://localhost:8081/solr"
ConcurrentUpdateSolrServer solrServer= new ConcurrentUpdateSolrServer(url, 10000, 4);
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", "shard1!513");
doc.addField("name", "Santhosh");
solrServer.add(documents);
solrServer.commit();
但是它正在将文档保存在collection1中,id为shard1!513,solrconfig.xml中是否需要进行任何配置更改(我使用的是solr4.5附带的默认solrconfig.xml)
如何将文档保存在我的newCollection中?以及如何进行文档路由?
请帮我解决问题。
谢谢!
最佳答案
您可以使用CloudSolrServer和UpdateRequest
SolrServer solrServer = new CloudSolrServer(zkHost) // zkHost is your solr zookeeper host string
SolrInputDocument doc = new SolrInputDocument();
UpdateRequest add = new UpdateRequest();
add.add(document);
add.setParam("collection", "newCollection");
add.process(solrServer);
UpdateRequest commit = new UpdateRequest();
commit.setAction(UpdateRequest.ACTION.COMMIT, true, true);
commit.setParam("collection", "newCollection");
commit.process(solrServer);
关于solr - 如何使用 solrj 在特定分片中索引数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19479081/