繁体   English   中英

Neo4J Traversal跳过关系类型

[英]Neo4J Traversal Skipping Relationship Types

我正在使用我自己的评估器在Neo4J中执行自定义遍历。 在遍历中有两个节点,由两个不同的关系连接。 我所看到的是,在遍历过程中只会走两条关系中的一条。

但是,我的自定义评估会根据两个关系是否存在来更改其行为。

似乎在遍历期间,Neo4J维护一组访问节点,并且如果候选路径在已经访问过的节点处结束,则该路径永远不会发送给我的评估者。 有没有解决的办法? 如何让自定义评估程序检查节点的每个可能路径?

这是一个简单的例子:

假设图形如下所示:

             E----D----A====B----C

遍历从A开始.A有两种不同的关系将它与B(两种不同类型)联系起来。 所有剩余节点仅通过1个关系连接。 评估者的目标是返回AD,AB和BC,但不返回DE。 BC有效的确定来自A和B之间存在两种关系的事实。

怎么解决这个问题?

您可能需要更仔细地考虑您的用例。

一个建议是,当你在java中使用遍历框架时 ,基本上你可以构建一个TraversalDescription ,然后迭代通过关系而不是路径或节点从它返回的内容。 如果您的主要抱怨是每个节点只被访问过一次,您可以更改TraversalDescription以指定RELATIONSHIP_GLOBAL,保证将遵循所有关系,无论这是否会导致您多次访问节点。

更广泛地说,遍历者不会多次使用相同的材​​料,因为如果他们这样做,则需要非常小心地指定终止条件。 如果多次击中某些节点或关系是可以的,你什么时候知道你已经完成了?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM