2013-05-16 73 views
2

首先,我創建了一個名爲usercollection集合:Solrcloud刪除收集錯誤?

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在刪除時出錯。因此,我怎樣才能真正刪除集合?

+0

哪個版本的Solr的你使用,你怎麼讓你的日誌,當你去lete集合? – kamaci

回答

0

你需要更新你的zookeeper合奏中的clusterstate.json文件。您的雲收集信息保存在那裏。

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

有同樣的問題,並最終通過手動編輯,並使用在動物園管理員更新clusterstate.json解決與Solr一起提供的zkcli.sh。

  1. 下載clusterstate.json:

    zkcli.sh -z ZK-主機名-cmd GETFILE /clusterstate.json clusterstateLoca.json

  2. 編輯下載clusterstateLocal.json,取出已刪除集合的節點,本地保存clusterstateLocal.json。

  3. 從ZK

    刪除陳舊clusterstate.json

    zkcli.sh -z ZK-主機名-cmd明確/clusterstate.json

  4. 上傳修改clusterstate.json到ZK:

    zkcli.sh -z ZK-主機名-cmd PUTFILE /clusterstate.json ./clusterstateLocal.json