2013-11-20 84 views
1

進口我2.0.0M06的Neo4j數據庫到新版本2.0.0RC1後,似乎標籤查詢不起作用:Neo4j的2.0.0RC1標籤迴歸

在2.0.0RC1

neo4j-sh (?)$ start n=node(*) return count(*);    
+----------+ 
| count(*) | 
+----------+ 
| 246  | 
+----------+ 
1 row 
219 ms 

219 ms 
neo4j-sh (?)$ MATCH (c:contract) return c;     
+---+ 
| c | 
+---+ 
+---+ 
0 row 
244 ms 

在2.0.0M06

neo4j-sh (root,0)$ start n=node(*) return count(n); 
+----------+ 
| count(n) | 
+----------+ 
| 246  | 
+----------+ 
1 row 
1205 ms 
neo4j-sh 

neo4j-sh (root,0)$ match (c:contract) return count(c); 
+----------+ 
| count(c) | 
+----------+ 
| 55  | 
+----------+ 
1 row 

193毫秒

標籤是很好的數據庫,當我看到任何節點的詳細信息,我可以看到它。 但是任何帶標籤過濾的請求都會失敗。

+0

也許有一個錯字的新版本?在你使用RC1的第一個例子中,你要返回'c'。在你使用M06的第二個例子中,你正在返回'count(c)'。 –

+0

好吧,我剛剛安裝了RC1,它也打破了我所有基於標籤的查詢。恢復到M06,它工作正常。這看起來像一個錯誤。 –

+0

是的,一個(BIG)Bug ... – bastien

回答

0

這個位置上工作:

➜ neo4j-community-2.0.0-RC1 bin/neo4j-shell   
Welcome to the Neo4j Shell! Enter 'help' for a list of commands 
NOTE: Remote Neo4j graph database service 'shell' at port 1337 

neo4j-sh (?)$ create (n:contract); 
+-------------------+ 
| No data returned. | 
+-------------------+ 
Nodes created: 1 
Labels added: 1 
505 ms 
neo4j-sh (?)$ match (n:contract) return n; 
+-----------+ 
| n   | 
+-----------+ 
| Node[0]{} | 
+-----------+ 
1 row 
243 ms 
neo4j-sh (?)$ 

由於2.0.0.M06,商店格式已經改變,且有里程碑之間沒有自動升級(因爲它們是里程碑:)。因此,如果您在Neoj4 2.0.0.M06中創建節點,升級的某些部分可能不起作用,這可能是問題的根源。

+0

似乎只適用於創建的新節點,但不適用於從2.0.0M06 DB導入的論文。 – bastien

9

正如彼得所說,只有GA版本支持升級。但是,這種特定升級有一個解決方法。這僅適用於將2.0.0-M06數據庫升級到2.0.0-RC1。它沒有很好的測試,你應該確保你有備份之前,你開始。如果您想嘗試一下,這裏的步驟:

  1. 在舊版本上的Neo4j

    正常關閉(2.0.0-M06)

    $ bin/neo4j stop 
    
  2. 導航數據庫目錄

    $ cd data/graph.db 
    
  3. 刪除標籤掃描存儲(這是具有新格式的關鍵部分)。它將在啓動時重新創建。

    $ rm -rf schema/label 
    
  4. 開始的Neo4j(2.0.0-RC1)

    $ bin/neo4j start 
    
+0

這是工作,謝謝。 – bastien