在Solr中创建碎片



我是Apache Solr的新手。我创建了一个名为TestCollection的新系列。该集合是通过Solr Admin Console创建的,其路由器类型是隐式的。我正在使用以下代码为上述集合创建新的碎片

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的重复,但添加了碎片,但没有代码段可用,也没有提及如何使用SOLRJ实现此目标。任何帮助将不胜感激。

问候,Ankur

您正在使用错误的API。

UpdatereQuest用于在索引数据(添加/删除文档等(上执行操作,而不是管理如何设置集合,例如创建碎片,例如,您需要使用此

只有当收集大小的大小足够大,无法用于节点,因此将添加碎片的集合分开,最后将碎片重新放在不同的节点上。

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

它比仅组成HTTP请求并将其放入浏览器更为复杂。

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

最新更新