使用 py2neo 在 neo4j 中的节点上指定 'visit only once condition'

Specify a 'visit only once condition' on a node in neo4j using py2neo

所以我有一个 graphdb,它有多个节点,每个节点之间最多只有一条边。为了收集某些数据,我需要访问所有节点,比如广度优先搜索。为此,我正在使用 py2neo 的 match 方法,如下所示:

graph.match(node, "KNOWS", end_node=None, bidirectional=True)

但是,我只需要访问一个节点一次。意思是,我的使用不能容忍在数据集中有一个节点两次。如何使用 py2neo 在 graphdb 上指定这样的约束?

谢谢

我建议您使用 Cypher query language 查询图表。 Cypher 允许您在图中定义一个模式,并在图中搜索与该模式匹配的路径。

Cypher 可以很容易地与 py2neo 一起使用。例如:

query = '''
    MATCH (p1:Person})-[:KNOWS]->(friend:Person)<-[:KNOWS]-(p2:Person)
    WHERE p1.name = "Bob" AND p2.name = "Jane"
    RETURN DISTINCT friend
'''
results = graph.cypher.execute(query)

以上查询将 return Bob 和 Jane 的不同共同好友。

也许您可以添加更多您的数据模型的细节,您正在尝试完成这些细节以计算出适当的 Cypher 查询。