2012-02-25 105 views
0

我有幾個問題。使用Neo4J REST API

如何通過屬性查詢節點?我只看到通過節點ID進行查詢。

我怎麼能得到,例如所有的朋友和未經證實的節點的朋友?目前我只能通過查詢節點的所有關係來做到這一點,並通過檢查每個關係的屬性來遍歷它。

我的想法如下:節點具有參數id(用戶ID),關係具有屬性 - 方向 - 從FROM_ME或TO_ME,狀態 - CONFIRMED,UNCONFIRMED。所有的查詢都是在Java的REST API中執行的。

如何以簡單的方式來做到這一點,如在SQL中,f.e.,SELECT friends where friend_id = 1?

引用一些教程與解決方案,這些問題的技術qould理解

回答

1

要回答你的第一個問題,你可以使用索引由節點上的性能迅速找到節點。 Doc for REST here:http://docs.neo4j.org/chunked/milestone/rest-api-indexes.html

對於第二個問題,Cypher查詢語言可以輕鬆執行這些類型的查詢。這裏是獲取是通過朋友關係,其中關係的「狀態」屬性「確認」連接到給定用戶的所有用戶的例子:

START user=node(123) 
MATCH user-[r:FRIEND]-friend 
WHERE r.status="confirmed" 
RETURN friend 

您也可以在的方向添加約束關係鏈的多個關係一起在一個路徑來尋找,朋友-的,朋友等

這裏是Cypher支架文檔:http://docs.neo4j.org/chunked/milestone/cypher-query-lang.html

這裏是通過REST API製作的Cypher查詢文檔:http://docs.neo4j.org/chunked/milestone/rest-api-cypher.html

+0

感謝您的回答。我瞭解「朋友」是這種關係的財產嗎?對?但什麼是「朋友」?我只與財產「朋友」有關係。 – J3DI 2012-02-25 05:46:47

+0

關係的類型是什麼?所有關係都有一個類型和一個方向以及零個或多個屬性。查詢的[r:TYPE]部分只過濾給定類型的關係,而「where」部分則根據各個屬性進一步過濾。 – 2012-02-25 17:08:27