Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过RESTAPI在neo4j cypher上创建索引节点_Neo4j_Cypher_Py2neo - Fatal编程技术网

通过RESTAPI在neo4j cypher上创建索引节点

通过RESTAPI在neo4j cypher上创建索引节点,neo4j,cypher,py2neo,Neo4j,Cypher,Py2neo,我正在尝试使用以下语法在cypher中创建索引节点: neo4j-sh (?)$ start m=node:person(UID= "1") return m; ==> +------------+ ==> | m | ==> +------------+ ==> | Node[64]{} | ==> +------------+ ==> 1 row ==> 0 ms ==> neo4j-sh (?)$ start n = n

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

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,py2neo似乎不再支持
属性
参数(对于未来的用户,
索引
将替换为
索引名称

索引和属性是两件不同的事情

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


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

索引和属性是两件不同的事情

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


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

该方法没有被弃用,
properties
参数仍然有效,与以前一样。正如您所确定的,唯一的更改是第一个参数从
index
更改为
index\u name

文件如下:


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

该方法未被弃用,并且
属性
参数仍然有效,与以前一样。正如您所确定的,唯一的更改是第一个参数从
index
更改为
index\u name

文件如下:


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

不是
start n node:/person/
给出的索引“person”?属性在后面的参数中定义。Py2neo使用引擎盖下的RESTAPI创建索引。是的,上面的查询使用名为person的索引查找键/值对UID:“1”。虽然在实践中,通常创建键/值对来反映节点属性,但据我所知,这并不是必需的。如果你看REST索引文档(),你可以很容易地创建与节点属性无关的键/值索引。我想我不明白——你是说我的语法不是在索引上创建键/值,还是根本不创建节点,或者不在索引节点上创建属性?我的意思是cypher语句只是一个查询。您要做的是创建UNIQUE(),但我不知道是否可以使用cypher对节点进行索引(除非自动索引)。索引“person”不是由
start n node:/person/
给出的吗?属性在后面的参数中定义。Py2neo使用引擎盖下的RESTAPI创建索引。是的,上面的查询使用名为person的索引查找键/值对UID:“1”。虽然在实践中,通常创建键/值对来反映节点属性,但据我所知,这并不是必需的。如果你看REST索引文档(),你可以很容易地创建与节点属性无关的键/值索引。我想我不明白——你是说我的语法不是在索引上创建键/值,还是根本不创建节点,或者不在索引节点上创建属性?我的意思是cypher语句只是一个查询。您要做的是创建UNIQUE(),但我不知道是否可以使用cypher对节点进行索引(除非自动索引)。