簡體   English   中英

Tinkerpop3 Gremlin 遍歷錯誤

[英]Tinkerpop3 Gremlin Traversal Error

我有一個具有以下結構的圖:

|-ProductFit
|-|-Part
|-|-App
|-|-|-ProductID
|-|-|-ProductModelID
|-|-|-ProductYearID

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

|-ProductModelID
|-|-ProductModelName

|-ProductYearID
|-|-ProductYear

其中 ProductFit 是我的第一個獨立頂點,ProductID、ProductModelID 和 ProductYearID 作為我的連接頂點。

現在,ProductFit 中有一些 ProductID 字段具有錯誤的值,我需要從 ProductID 的其他頂點獲取值。

這是我的查詢:

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')

但這給了我這個錯誤:

java.util.HashMap cannot be cast to org.apache.tinkerpop.gremlin.structure.Element

是我在遍歷過程中無法從一個頂點轉到另一個頂點還是查詢中存在一些問題? TIA。

您的choose()正在使用values()這並不意味着從Map挑選值。 它旨在與Element一起使用。 我在 The Crew 玩具圖上遇到了同樣的錯誤:

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

gremlin> g.V().properties('location').valueMap().choose(select('startTime')).option(2004,constant(1)).option(none,constant(2))
==>2
==>2
==>1
...
==>2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM