0

我正在尝试使用以下语法在密码中创建索引节点:

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)。

4

2 回答 2

2

索引和属性是两个不同的东西。

您的图表中似乎有一个节点,其索引名为person和键/值对 UID:“1”。您的第一个查询通过其索引获取您的节点。但是索引不是节点的属性。您可以启动 webadmin 以可视化图表中索引的管理方式。

据我所知,文档中没有关于如何使用密码创建索引的内容,但您可以轻松地使用 REST API 来操作它们(链接)。

于 2013-04-18T13:25:56.820 回答
1

该方法尚未被弃用,并且properties参数仍然有效,与以前一样。正如您所确定的,唯一的变化是第一个参数的从index到的变化。index_name

文档在这里:

http://book.py2neo.org/en/latest/graphs_nodes_relationships.html#py2neo.neo4j.GraphDatabaseService.get_or_create_indexed_node

请注意,properties只有在节点不存在时才会实际使用,即在执行“创建”时而不是在执行“获取”时。否则,现有节点将保持原样。

于 2013-04-19T06:10:26.227 回答