Gremlin Double不能强制转换为org.apache.tinkerpop.gremlin.structure.



我尝试在Java上实现gremlin遍历。

在这里,我尝试插入/更新分数"VISIBLE_ON"与根据我的管道计算的分数的关系。

GraphTraversal t = graph.V().hasLabel("App").as("a")
.inE("RANKS").as("r")
.outV().as("k")
.choose(__.select("k").by("countryCode").is(__.in(...)),
__.math("1.0 / r").by("rank1"),
__.math("1.0 / r").by("rank2"))
.as("score")
.has("Country", "countryCode", __.select("k")
.by("countryCode")).as("c")
.inE("VISIBLE_ON").as("v")
.property("score", __.select("score"))
.select("c");

,但我试图运行我的gremlin代码,异常发生如下:org.apache.tinkerpop.gremlin.driver.exception.ResponseException: class java.lang.Double cannot be cast to class org.apache.tinkerpop.gremlin.structure.Element

有什么建议吗?

解如下:

GraphTraversal t = graph.V().hasLabel("App").as("a")
.inE("RANKS").as("r")
.outV().as("k")
.choose(__.select("k").by("countryCode").is(__.in(...)),
__.math("1.0 / r").by("rank1"),
__.math("1.0 / r").by("rank2"))
.as("score")
.select("a")
.outE("VISIBLE_ON").as("v")
.property("score", __.select("score"))
.inV().as("c")
.hasLabel("Country")
.has("countryCode", __.select("k").by("countryCode")).as("c")
.select("c");

我想你的问题在这里:

.choose(__.select("k").by("countryCode").is(__.in(...)),
__.math("1.0 / r").by("rank1"),
__.math("1.0 / r").by("rank2"))
.as("score")
.has("Country", "countryCode", __.select("k")

choose()math()分支产生double,然后你尝试在double上调用has(),has()只意味着在Element上工作。

相关内容

  • 没有找到相关文章

最新更新