Solrcloud删除收集错误?

时间:2013-05-16 04:52:49

标签: solr solrj apache-zookeeper solr4 solrcloud

首先,我创建了一个名为 usercollection 的集合:

http://xxxxx/solr/admin/collections?action=CREATE&name=usercollection&numShards=3&replicationFactor=3&maxShardsPerNode=3

然后我发现了一些错误,所以我删除了它。

 http://xxxx/solr/admin/collections?action=DELETE&name=usercollection

最后,我想再次创建该集合。我发现了一些错误。

`May 16, 2013 8:32:23 PM org.apache.solr.cloud.OverseerCollectionProcessor run
 INFO: Overseer Collection Processor: Get the message id:/overseer/collection-queue-    work/qn-0000000000 message:{
"operation":"createcollection",
"numShards":"3",
"maxShardsPerNode":"3",
"createNodeSet":null,
"name":"usercollection",
"replicationFactor":"3"}
May 16, 2013 8:32:23 PM org.apache.solr.common.SolrException log
SEVERE: Collection createcollection of createcollection           failed:org.apache.solr.common.SolrException: collection already exists: usercollection
    at org.apache.solr.cloud.OverseerCollectionProcessor.createCollection(OverseerCollectionProcessor.java:311)
    at org.apache.solr.cloud.OverseerCollectionProcessor.processMessage(OverseerCollectionProcessor.java:160)
    at org.apache.solr.cloud.OverseerCollectionProcessor.run(OverseerCollectionProcessor.java:112)
    at java.lang.Thread.run(Thread.java:662)`

所以,我认为删除时集合API有问题。那么,我怎样才能真正删除集合呢?

3 个答案:

答案 0 :(得分:3)

遇到同样的问题,最后通过使用Solr提供的zkcli.sh在zookeeper中手动编辑和更新clusterstate.json来解决问题。

  1. 下载clusterstate.json:

    zkcli.sh -z zk-host-name -cmd getfile /clusterstate.json clusterstateLoca.json

  2. 编辑下载的clusterstateLocal.json,删除已删除集合的节点,在本地保存clusterstateLocal.json。

  3. 从ZK中删除陈旧的clusterstate.json

    zkcli.sh -z zk-host-name -cmd clear /clusterstate.json

  4. 将修改后的clusterstate.json上传到ZK:

    zkcli.sh -z zk-host-name -cmd putfile /clusterstate.json ./clusterstateLocal.json

答案 1 :(得分:2)

删除集合后,您还应该提交(如果使用浏览器,您可以执行相同的操作而无需卷曲)

curl http://localhost:8080/solr/update -H "Content-type: text/xml" --data-binary '<commit />'

...此时告诉Solr优化它的索引也是一个好主意:

curl http://localhost:8080/solr/update -H "Content-type: text/xml" --data-binary '<optimize />'

来源http://www.alphadevx.com/a/365-Clearing-a-Solr-search-index

答案 2 :(得分:0)

您需要更新zookeeper集合中的clusterstate.json文件。您的云集信息保存在那里。