gpt4 book ai didi

java - OrientDB 的 GremlinPipeline 问题

转载 作者:行者123 更新时间:2023-12-02 06:00:33 26 4
gpt4 key购买 nike

我有以下代码片段,用于查找两个节点之间的最短路径:

GremlinPipeline<String, List> pathPipe = new GremlinPipeline<String, List>(v1)
.as("similar")
.out("similar")
.loop("similar", new PipeFunction<LoopBundle<Vertex>, Boolean>() {
//@Override
public Boolean compute(LoopBundle<Vertex> bundle) {
return bundle.getLoops() < 5 && bundle.getObject() != v2;
}
})
.path()

现在我想知道如何打印结果。我试试这个:

迭代器 iter = pathPipe.iterator();while(iter.hasNext()) { System.out.println(iter.next());}

但我有以下奇怪的结果:

[v[#9:0], v[#9:1], v[#9:0]]
[v[#9:0], v[#9:1], v[#9:2]]
[v[#9:0], v[#9:1], v[#9:3]]
[v[#9:0], v[#9:1], v[#9:4]]
[v[#9:0], v[#9:1], v[#9:5]]
[v[#9:0], v[#9:1], v[#9:6]]
[v[#9:0], v[#9:1], v[#9:7]]
[v[#9:0], v[#9:1], v[#9:8]]
[v[#9:0], v[#9:1], v[#9:9]]
[v[#9:0], v[#9:1], v[#9:10]]
[v[#9:0], v[#9:1], v[#9:11]]
[v[#9:0], v[#9:1], v[#9:12]]
[v[#9:0], v[#9:1], v[#9:13]]
[v[#9:0], v[#9:1], v[#9:14]]
[v[#9:0], v[#9:1], v[#9:15]]
[v[#9:0], v[#9:1], v[#9:16]]

请注意,我正在尝试找到节点 v[#9:0] 和 v[#9:1] 之间的最短路径。

我的查找最短路径代码有问题吗?还是有其他方法可以打印我的结果?

我使用面向1.6.2。

最佳答案

我的 gremlin-java/pipeline 不如我的 gremlin-groovy,但我看到的一个问题是你没有在 Java 中正确处理顶点相等性。这部分:

&& bundle.getObject() != v2

对于 Groovy 有效,但在 Java 中我会将其写为:

&& !bundle.getObject().equals(v2)

关于java - OrientDB 的 GremlinPipeline 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22712836/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com