在 SOLR 中创建分片

creating shard in SOLR

我是 Apache Solr 的新手。我创建了一个名为 testCollection 的新 Collection。这个 collection 是通过 solr 管理控制台创建的,它的路由器类型是隐式的。我正在使用下面的代码为上面的 collection

创建一个新的分片
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 来实现这个问题。任何帮助将不胜感激。

此致, 安库尔

你用错了api。

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

仅当集合的大小增长到对节点而言太大时才创建分片,因此拆分集合并添加分片,最后将分片重新定位到不同的节点上。

虽然可能,但我想不出在 Java 中执行此操作的情况是个好主意。

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

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