在SOLR中创建分片

时间:2017-04-28 11:37:03

标签: java solr solrj

我是Apache Solr的新手。我创建了一个名为testCollection的新集合。此集合已通过solr管理控制台创建,其路由器类型是隐式的。我使用以下代码为上面的集合创建一个新的分片

SolrServer solr = new HttpSolrServer("http://localhost:8983/solr/testCollection");

        UpdateRequest request = new UpdateRequest();
        request.setPath("http://localhost:8983/solr/testCollection");
        request.setMethod(METHOD.GET);
        request.setParam("action", "CREATESHARD");
        request.setParam("collection", "testCollection");
        request.setParam("shard", "latestShard");
        solr.request(request);
        solr.commit();

执行上面的操作时我没有得到任何异常,但是没有创建新的分片。我正在使用solr 6.1。虽然这个问题似乎可能与Solr 4 - adding shard重复,但没有可用的代码片段,但是没有提到如何使用SolrJ实现这一点。任何帮助将不胜感激。

此致 ANKUR

2 个答案:

答案 0 :(得分:0)

您使用的是错误的API。

UpdateRequest用于对索引数据执行操作(添加/删除文档等),而不是用于管理集合的设置方式,例如,创建分片,需要使用this

答案 1 :(得分:0)

仅当集合的大小足够大而对于节点来说太大时才创建分片,因此分割集合添加分片并最终在不同节点上重新定位分片。

虽然可能,但我想不出这样的情况,在Java中这是一个好主意。

这比编写http请求并将其放入浏览器更复杂。

http://localhost:8983/solr/admin/collections?action=CREATESHARD&collection=testCollection&shard=shard2