我有两个问题
1.如果我有如下图表
A-> B-> C-> d
A-> B-> C-&GT,E
我的要求是获取路径(从最开始),以便我可以遍历节点并根据标准执行某些操作。
我使用具有唯一性的遍历描述选项如下所示。 TraversalDescription td = Traversal.description() .relationships(KNOWS,Direction.OUTGOING) .uniqueness(Uniqueness.NODE_PATH) .evaluator(Evaluators.excludeStartPosition());
我期待以下结果
A-> B-> C-> d
A-> B-> C-&GT,E
但我得到了以下结果。我尝试了NODE_PATH和NODE_GLOBAL。
A->乙
A-> B-&以及c
A-> B-> C-> d
A-> B-> C-&GT,E
2.清除不再需要的旧节点(基于时间戳)的最有效方法是什么?我有2个选择 1.从开始到结束遍历节点并收集可以删除的节点ID。然后遍历列表并删除节点及其关系/节点 2. Cypher-query删除与日期条件匹配的节点和关系
提前多多感谢!
答案 0 :(得分:1)
回答(1)唯一性控制在遍历期间(重新)访问哪些节点/关系。但是,它不能控制哪些路径返回到Path迭代器。您必须在Evaluator中编码的行为。在您的情况下,它可以是基于路径长度或端节点上的特定标准的评估器,例如:
//对于A-> B-> C-> D Evaluators.atDepth(3)
或
//用于返回末端节点具有属性的路径" bla" 新的Evaluator(){ 公共评估评估(路径路径){ return Evaluation.ofIncludes(path.endNode()。hasProperty(" bla")); } }
不幸的是,没有内置的方法只能获得它在每个分支中访问的最长路径。实际上这将是一个很好的功能。