2013-04-18 155 views
0

我試圖創建暗號索引節點,語法如下:通過REST API創建的Neo4j的暗號索引節點

neo4j-sh (?)$ start m=node:person(UID= "1") return m; 
==> +------------+ 
==> | m   | 
==> +------------+ 
==> | Node[64]{} | 
==> +------------+ 
==> 1 row 
==> 0 ms 
==> 
neo4j-sh (?)$ start n = node(64) return n.UID; 
==> EntityNotFoundException: The property 'UID' does not exist on Node[64] 

爲什麼是它的節點出現被創建,但屬性我正在創建,而且似乎已成功返回,不存在?

是否有更簡單的方法?我以前用py2neo的功能:

neo4j.GraphDatabaseService("http://localhost:7474/db/data/").get_or_create_indexed_node(index='person', key='UID', value=self.id, properties={'UID' : self.id}) 

但是,這似乎已經過時---它不再與最新版本py2neo,這似乎並不支持properties參數不再適用(和未來人,index被替換爲index_name)。

回答

2

索引和財產是兩碼事。

看來你在你的圖表與名爲person和鍵/值對UID的索引節點:「1」。您的第一個查詢通過索引獲取您的節點。但是索引不是節點的屬性。您可以啓動webadmin以查看圖表中的索引管理方式。

據我所知,關於如何使用密碼創建索引的文檔中沒有任何內容,但您可以輕鬆使用REST API來操作它們(link)。

+0

是不是指數「的人,」通過'啓動器N節點給出:/人/'?這些屬性在後面的parens中定義。 Py2neo使用引擎蓋下的REST API創建索引。 – Mittenchops 2013-04-18 13:50:36

+0

是的,上面的查詢使用名爲person的索引查找鍵/值對UID:「1」。雖然在實踐中,鍵/值對通常是爲了反映節點屬性而創建的,但據我所知這不是必須的。如果您查看REST索引文檔(http://docs.neo4j.org/chunked/stable/rest-api-indexes.html),您可以輕鬆創建與節點屬性無關的鍵/值索引。 – MrDosu 2013-04-18 14:48:23

+0

我編輯,我得到了錯誤 – MrDosu 2013-04-18 14:50:07