這是我第一次嘗試Neo4j,請原諒我失去了一些非常微不足道的東西。 這裏是我的問題:在Neo4j中找到具有直接邊緣的路徑
考慮圖表如下面的Neo4j的控制檯例如創建: http://console.neo4j.org/?id=y13kbv
我們有以下在本例中的節點:
(人{MEMBERID,成員名稱,membershipDate})
(Email {value,badFlag})
(賬戶號碼{值,badFlag})
我們可能有更多的節點捕捉到相關的信用卡一樣,billAddress,shipAddress等 所有這些節點的人的特點將是相同的電子郵件和AccountNumber節點: (creditCard {value,badFlag}),(billAddress {value,badFlag})等等。
隨着人口作爲Neo4j的控制檯例子中看到的圖形,假設我們再增加一個人的圖如下:
(p7:Person {memberId:'18' , memberName:'John', membershipDate:'12/2/2015'}),
(email6:Email {value: '[email protected]', badFlag:'false'}),
(a2)-[b13:BELONGS_TO]->(p7),
(email6)-[b14:BELONGS_TO]->(p7)
當我們這個新的人加入到系統中,使用情況是我們必須檢查是否存在從新Person(「email6」和「a2」節點)的特徵到系統中其中「badFlag = true」的任何其他節點的路徑,在這種情況下節點(a1 {value :1234,badFlag:true})。
這裏,得到的路徑將是(email6)-[BELONGS_TO]->(p7)<-[BELONGS_TO]-(a2)-[BELONGS_TO]->(p6)<-[BELONGS_TO]-(email5)-[BELONGS_TO]->(p5)<-[BELONGS_TO]-(a1:{badFlag:true})
我想是這樣的:
MATCH (newEmail:Email{value:'[email protected]'})-[:BELONGS_TO]->(p7)-[*]-(badPerson)<-[:BELONGS_TO]-(badFeature{badFlag:'true'}) RETURN badPerson, badFeature;
這似乎當有鏈接的只有一個級別的工作,但它不工作當路徑可能會比Neo4j控制檯例子更長時。
我需要Cypher查詢幫助我解決這個問題。 我最終將使用我的應用程序使用Neo4j的Java API來執行此操作。使用Java API執行此操作的正確方法是什麼?