2015-12-21 16 views
1

我不知道爲什麼而在此之前,我可以從它那裏得到的回答我的查詢不起作用:對Neo4j的共同標籤不起作用

我有拉布勒如誰連接到與關係「人」,「有」標貼的「數據」和數據連接與關係‘標記’標籤的另一個節點

我想獲得兩人之間的共同標籤

MATCH (o:Person {username: "Mahsa" })-[:HAS]-()-[r1:TAGGED]->(tag) 
     <- [r2:TAGGED]-()-[:HAS]-(f:Person {username: "Frank"}) 
return tag.name 

我的圖表設置:

CREATE (_0 { `name`:"Mahsa" }) 
CREATE (_1 { `name`:"Frank" }) 
CREATE (_2 { `name`:"Data1" }) 
CREATE (_3 { `name`:"Data2" }) 
CREATE (_4 { `name`:"Tag1" }) 
CREATE (_5 { `name`:"Tag2" }) 
CREATE (_6 { `name`:"Tag3" }) 
CREATE (_7 { `name`:"Tag4" }) 
CREATE _0-[:`HAS`]->_2 
CREATE _0-[:`HAS`]->_3 
CREATE _1-[:`HAS`]->_2 
CREATE _1-[:`HAS`]->_3 
CREATE _2-[:`TAGGED`]->_4 
CREATE _2-[:`TAGGED`]->_5 
CREATE _3-[:`TAGGED`]->_6 
CREATE _3-[:`TAGGED`]->_7

,當我上測試http://console.neo4j.org/此查詢一次我得到空:

MATCH (me)-[:HAS]->(myFavorites)-[:TAGGED]->(tag) 
     <-[:TAGGED]-(theirFavorites)<-[:HAS]-(people) 
WHERE me.name = 'Mahsa' AND NOT me=people 
RETURN people.name AS name, count(*) AS similar_favs 
ORDER BY similar_favs DESC 

回答

1

您的任何標籤共享。

如果您將您的設置更改爲共享Tag1Tag2,則它返回某物。

create 
(_0 {`name`:"Mahsa"}), 
(_1 {`name`:"Frank"}), 
(_2 {`name`:"Data1"}), 
(_3 {`name`:"Data2"}), 
(_4 {`name`:"Tag1"}), 
(_5 {`name`:"Tag2"}), 
_0-[:HAS]->_3, 
_0-[:HAS]->_2, 
_1-[:HAS]->_3, 
_1-[:HAS]->_2, 
_2-[:TAGGED]->_5, 
_2-[:TAGGED]->_4, 
_3-[:TAGGED]->_5, 
_3-[:TAGGED]->_4 

見:http://console.neo4j.org/r/9a9cto

你的數據設置是錯誤的,它忽略了標籤和第一個查詢正確的財產名字!

+1

非常感謝你@michael飢餓它的作品,我犯了一個虛假的錯誤 –