首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tinkerpop3 Gremlin遍历误差

Tinkerpop3 Gremlin遍历误差
EN

Stack Overflow用户
提问于 2017-09-07 06:33:39
回答 1查看 3.1K关注 0票数 1

我有一个具有以下结构的图表:

代码语言:javascript
复制
|-ProductFit
|-|-Part
|-|-App
|-|-|-ProductID
|-|-|-ProductModelID
|-|-|-ProductYearID

|-ProductID
|-|-ProductName
|-|-ProductModelID
|-|-ProductYearID

|-ProductModelID
|-|-ProductModelName

|-ProductYearID
|-|-ProductYear

其中,ProductFit是我的第一个独立顶点,ProductID、ProductModelID和ProductYearID是我的连通顶点。

现在,在ProductFit中有一些ProductID字段有错误的值,我需要从ProductID的其他顶点获取值。

以下是我的疑问:

代码语言:javascript
复制
g.V().has('ProductFit','Part','PA01').properties('App')
.valueMap('ProductID','ProductModelID','ProductYearID')
.choose(values('ProductModelID'))
.option(PM01, g.V().has('ProductFit','Part','PA01').properties('App').values('ProductModelID'))
.option(PM02, g.V().has('ProductID','ProductModelID','PM01'))
.values('ProductModelID')

但这给了我一个错误:

代码语言:javascript
复制
java.util.HashMap cannot be cast to org.apache.tinkerpop.gremlin.structure.Element

是因为在遍历过程中我不能从一个顶点转到另一个顶点,还是查询中存在一些问题?蒂娅。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-07 10:29:39

您的choose()正在使用values(),这并不意味着从Map中选择值。它用于与Element一起使用。我在船员玩具图上也有同样的错误:

代码语言:javascript
复制
gremlin> graph = TinkerFactory.createTheCrew()
==>tinkergraph[vertices:6 edges:14]
gremlin> g = graph.traversal()
==>graphtraversalsource[tinkergraph[vertices:6 edges:14], standard]
gremlin> g.V().properties('location').valueMap().choose(values('startTime')).option(2004,constant(1)).option(none,constant(2))
java.util.HashMap cannot be cast to org.apache.tinkerpop.gremlin.structure.Element
Type ':help' or ':h' for help.
Display stack trace? [yN]n

您应该使用select

代码语言:javascript
复制
gremlin> g.V().properties('location').valueMap().choose(select('startTime')).option(2004,constant(1)).option(none,constant(2))
==>2
==>2
==>1
...
==>2
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46089388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档