尝试使用 CloudSolrServer 在 SolrCloud 上上传文档时出现以下异常。
Exception in thread "main" org.apache.solr.common.SolrException: Could not find collection : gettingstarted
at org.apache.solr.common.cloud.ClusterState.getCollection(ClusterState.java:162)
at org.apache.solr.client.solrj.impl.CloudSolrServer.directUpdate(CloudSolrServer.java:305)
at org.apache.solr.client.solrj.impl.CloudSolrServer.request(CloudSolrServer.java:533)
at org.apache.solr.client.solrj.request.AbstractUpdateRequest.process(AbstractUpdateRequest.java:124)
at org.apache.solr.client.solrj.SolrServer.add(SolrServer.java:116)
at org.apache.solr.client.solrj.SolrServer.add(SolrServer.java:102)
at Test.addDocumentSolrCloud(Test.java:265)
at Test.main(Test.java:284)
该集合存在,我可以使用 Solr 管理员进行查询。并且还可以使用 HttpSolrServer 上传文档(单实例 - 非云模式)。
我正在使用以下代码片段
CloudSolrServer server = new CloudSolrServer("localhost:2181");
server.setDefaultCollection("gettingstarted");
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", id);
doc.addField("name", name);
server.add(doc);
server.commit();
不知道我错过了什么。我的 Zookeeper 在外部运行在两个 solr 云节点的同一台机器上
最佳答案
我能够找出问题所在。事实上,集群/云配置正确,但 SolrJ-4.x 不能与 Solr 5.0.0 一起使用;特别是 Cloud Solr API;除了云之外,使用 HttpSolrServer 的其他查询也产生了结果。
我切换到 SolrJ-5.0.0 并修改了如下代码片段:
CloudSolrClient cloudSolrClient = new CloudSolrClient("localhost:2181") ;
cloudSolrClient.setDefaultCollection("gettingstarted");
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", id);
doc.addField("name", name);
cloudSolrClient.add(doc);
cloudSolrClient.commit();
API 已更改/重构
阿德南
关于java - CloudSolrServer : Could not find collection : gettingstarted,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29126995/