2012-11-28 45 views
0

我運行兩個相同的Neo4j DB模式下暗號查詢相同的暗號查詢:獲取不同的(和不正確的)結果乳寧在相同的數據庫模式

START dave = node(7) 
// dave's friend who lives and attends an event in the same city 
MATCH dave-[:FRIEND]-friend-[:LIVES]->city-[:HOSTS]->event<-[:ATTENDS]-friend 
RETURN dave.name, friend.name, city.name, event.name; 

當我運行的DB上述查詢我的本地服務器上的架構,我得到正確的結果 - 一個單一的路徑:

+----------------------------------------------------+ 
| dave.name | friend.name | city.name | event.name | 
+----------------------------------------------------+ 
| "dave" | "adam"  | "london" | "exhibition" | 
+----------------------------------------------------+ 

其實每個4人節點(4,5,6,7),亞當=節點(4)是隻有在同一城市居住和參加活動的人。

然而,當我運行相同的查詢here(上完全相同的DB模式作爲我的本地服務器上),我得到了以下不正確的結果:

+----------------------------------------------------+ 
| dave.name | friend.name | city.name | event.name | 
+----------------------------------------------------+ 
| "dave" | "adam"  | "london" | "exhibition" | 
| "dave" | "adam"  | "london" | "exhibition" | 
| "dave" | "bill"  | "paris" | "seminar" | // bill doesn't attend seminar 
+----------------------------------------------------+ 

對於其他人,而不是戴夫=節點(7),結果here也是不正確的(額外的路徑不存在)。

+0

是它們都運行相同版本的neo4j?你也說他們有相同的信息,這是你做的一個負載,還是它是一個負載和一個副本到另一個? – Nicholas

+0

在我的計算機上,我使用的是v1.8 neo4j,並且在[Web控制檯](http://console.neo4j.org/?id=rkqzww)上運行查詢前選擇了相同的版本。所以是的,在這兩種情況下,我擁有相同的版本。此外,對於所有其他版本(比v1.8更新或更新的版本),Web控制檯上的查詢會得到相同的結果(不像前面解釋的那樣)。對不起,@尼古拉斯你評論中的第二個問題並不清楚。請解釋一下。 – user1030497

+0

如何將數據加載到系統中?你說他們是相同的數據,但你如何確保這一點? – Nicholas

回答

0

嘗試將比賽階段分成2,我從來沒有在一場比賽模式中使用的一個參數名稱2倍:

除了

MATCH dave-[:FRIEND]-friend-[:LIVES]->city-[:HOSTS]->event<-[:ATTENDS]-friend 

使用

MATCH dave-[:FRIEND]-friend-[:LIVES]->city-[:HOSTS]->event, event<-[:ATTENDS]-friend 
+0

第一個查詢沒有問題 - 它是完全合法的,並且在我的本地數據庫服務器上運行時返回正確的(預期的)結果。我的問題是爲什麼相同的查詢在Web控制檯上的另一個相同數據庫模式上運行時出現錯誤結果[here](http://console.neo4j.org/?id=rkqzww)(返回多個不存在的路徑,其中只有一個路徑存在)。此外,在這兩種情況下,我都使用/設置相同的版本(v1.8),並確保2個數據庫中的數據完全相同。 – user1030497

相關問題