Cypher 如何仅对特定类型的节点进行最大跳数计算?
How can Cypher Impose a Maximum Number of Hops Only Counting a Specific Type of Node?
我知道在 Neo4J 中,Cypher 可用于根据两个节点之间的最大跳数过滤结果,如下所示:
MATCH (a:Word)-[relationships*..3]-(b:Word)
RETURN a, relationships, b
LIMIT 5
这将 return 都是 Word 类型的节点(a 和 b),并且彼此总跳数为 4(通过所有节点类型和所有关系类型)。
我想知道是否可以让 Cypher 只计算特定类型的节点,当它在上面的例子中计算到最大 3 跳时。
例如,在这个节点链中:
(a:单词) ---> (b:定义) ---> (c:单词) ---> (d:定义) ---> (e:定义) ---> (f:Word) ---> (g:定义) ---> (h:Word)
节点 a
和 h
之间共有 7 跳。但是,它们之间只有 3 个跳字。
Cypher 是否可以通过这种方式设置最大跳数?
我知道在 Neo4J 中,Cypher 可用于根据两个节点之间的最大跳数过滤结果,如下所示:
MATCH (a:Word)-[relationships*..3]-(b:Word)
RETURN a, relationships, b
LIMIT 5
这将 return 都是 Word 类型的节点(a 和 b),并且彼此总跳数为 4(通过所有节点类型和所有关系类型)。
我想知道是否可以让 Cypher 只计算特定类型的节点,当它在上面的例子中计算到最大 3 跳时。
例如,在这个节点链中:
(a:单词) ---> (b:定义) ---> (c:单词) ---> (d:定义) ---> (e:定义) ---> (f:Word) ---> (g:定义) ---> (h:Word)
节点 a
和 h
之间共有 7 跳。但是,它们之间只有 3 个跳字。
Cypher 是否可以通过这种方式设置最大跳数?