我是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