Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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
如何以最佳方式存储/访问节点id';在neo4j/py2neo/python中是什么?_Neo4j_Graph Databases_Py2neo - Fatal编程技术网

如何以最佳方式存储/访问节点id';在neo4j/py2neo/python中是什么?

如何以最佳方式存储/访问节点id';在neo4j/py2neo/python中是什么?,neo4j,graph-databases,py2neo,Neo4j,Graph Databases,Py2neo,一般来说,我不熟悉neo4j和graph数据库,所以这可能是一个愚蠢的问题,但通过id引用节点的最佳方式是什么,或者在现有节点和最近插入的节点之间形成关系的最佳方式是什么 现在,在我的图表中,我有一个作为单个节点的关键字列表,我正在收集传入的tweet,然后在用户、tweet和跟踪的关键字之间形成关系。为了按id在本地存储关键字节点,我使用了一个字典,将关键字作为键,节点id作为值,以填充这个密码查询: RELATE_TWEET_TO_KEYWORD = """\ MATCH (a:Tweet)

一般来说,我不熟悉neo4j和graph数据库,所以这可能是一个愚蠢的问题,但通过id引用节点的最佳方式是什么,或者在现有节点和最近插入的节点之间形成关系的最佳方式是什么

现在,在我的图表中,我有一个作为单个节点的关键字列表,我正在收集传入的tweet,然后在用户、tweet和跟踪的关键字之间形成关系。为了按id在本地存储关键字节点,我使用了一个字典,将关键字作为键,节点id作为值,以填充这个密码查询:

RELATE_TWEET_TO_KEYWORD = """\
MATCH (a:Tweet), (b:Keyword)
WHERE a.id = {tweet_id} AND id(b) = {keyword_id}
CREATE (a)-[r:REFERENCED]->(b)
RETURN r
"""
关键字很少更新,所以我只是有一个周期性的芹菜任务,每周都会修改一个更新的关键字词典

有没有更好或更有效的方法来做到这一点?我还尝试最小化对服务器的调用


谢谢。

您可以在节点属性上创建一个,以声明该值是唯一的,并将其视为一个id。您不应该在外部系统中使用Neo4j内部id,因为如果删除节点,该id可以回收

例如:

CREATE CONSTAINT ON (k:Keyword) ASSERT k.word IS UNIQUE;

然后可以将
word
属性视为关键字节点的唯一id。这还会在unique属性上创建索引,确保该属性的查找是有效的。

您可以在节点属性上创建一个索引,以断言该值是唯一的,并将其视为id。您不应该在外部系统中使用Neo4j内部id,因为如果删除节点,该id可以回收

例如:

CREATE CONSTAINT ON (k:Keyword) ASSERT k.word IS UNIQUE;

然后可以将
word
属性视为关键字节点的唯一id。这还会在unique属性上创建索引,确保该属性的查找效率。

“您不应该在外部系统中使用Neo4j内部id,因为如果删除节点,该id可以回收。”啊,明白了,谢谢!“您不应该在外部系统中使用Neo4j内部id,因为如果删除节点,可以回收该id。”啊,明白了,谢谢!