我有源节点和目标节点,我想对路径中的节点和关系类型进行限制。我正在使用Neo4j Java API .
考虑以下玩具示例,
我们有三个人节点 A、B 和 C。
源节点:A & 目标节点:B。它们之间可能存在许多其他类型的路径。我想将路径限制为特定格式,例如 -
(person) -[worksAt]-> (company) -[CompetitorOf]-> (company) <-[worksAt]- (person)
这可以通过密码查询轻松实现,但我想知道是否有任何方法可以使用 Java API 来实现。
注意:
- 请不要建议对路径长度进行限制,因为 并不能解决问题。我想限制节点和关系 输入路径。
- 上面提到的示例是玩具示例。我尝试使用的图表更加复杂,并且有许多可能的路径无法遍历和验证各个路径。
最佳答案
从你的问题中并不清楚你实际上想要计算什么。你有A和B,想知道他们的公司是否是竞争对手?您是否有 C,并且想找出他们的 friend 中有谁在竞争公司工作?
无论如何,如果您使用遍历 API(您正在谈论路径),您可以编写自定义 PathExpander
它将使用 last relationship在 Path
确定下一个要遍历的关系类型。
如果您只是手动遍历关系,我并没有真正看到问题:只需调用 Node.getRelationships(RelationshipType, Direction)
在每个步骤中使用正确的参数。
与您在 Cypher 中所做的相反,您无需声明您在路径中查找的模式,而只需计算遵循所需模式的路径。
关于java - 在Neo4j中,使用Java API时有什么方法可以限制路径中的节点和关系类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40055091/