【问题标题】:Json loading with gremlin server in titan graph database在 Titan 图形数据库中使用 gremlin 服务器加载 Json
【发布时间】:2017-10-17 18:59:51
【问题描述】:

我正在尝试使用 gremlin 查询将 Json 文件加载到 Titan 图形数据库中,我得到了以下查询

   graph = TitanFactory.open('conf/titan-cassandra-es.properties')
   g = graph.traversal()
   g.loadGraphSON('tjson.json.json')

我收到类似

的错误

没有方法签名: org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource.loadGraphSon() 适用于参数类型:(java.lang.String) 值: [tjson.json]

问题是:如何加载Json文件

【问题讨论】:

    标签: java titan gremlin


    【解决方案1】:

    我假设您使用的是更新版本的 Titan - 即 1.0 或更高版本。如果是这样,则不再支持该语法 - g.loadGraphSON('tjson.json.json')。这是旧的 TinkerPop 2.x 语法。 Titan 1.0 及更高版本支持 TinkerPop 3.x。您可以阅读修改后的语法 here,但它现在基本上看起来像这样:

    graph.io(IoCore.graphson()).readGraph("graphson-file.json");
    

    【讨论】:

    • 我尝试使用上述查询加载 json 文件,但出现以下错误
    • com.fasterxml.jackson.databind.JsonMappingException:无法从 START_ARRAY 令牌中反序列化 java.util.LinkedHashMap 的实例。我的 json 文件示例如下。 [{"交易日期":"11/19/2016","IFSC 代码":"ICIC0004351","AMOUNT":"102453","帐户":"9111115461"}]
    • 如果那是您的 JSON 文件,那么问题是您不符合 GraphSONReader 所期望的格式。阅读器不会采用任意 JSON。也许this answer 会帮助你更好地理解格式。
    • 我有这样的graphjson:{"id":0,"label":"Person","outE":{"transfer":[{"id":0,"inV": "ICIC0000008-805000017","properties":{"amount":"228786690"}}]},"properties":{"name":[{"id":0,"value":"SBIN0000196-33502796303"} ]} 我正在尝试使用以下查询将其加载到泰坦中 graph.io(IoCore.graphson()).readGraph("test.json") 我收到错误为 Invalid Vertex:Null
    • 您将inV 作为没有有效标识符的顶点。它需要映射到“id”给出的顶点id(就像你在那个例子中的“id”是“0”)
    猜你喜欢
    • 1970-01-01
    • 2016-05-15
    • 1970-01-01
    • 1970-01-01
    • 2017-03-11
    • 2016-01-21
    • 2013-04-30
    • 2016-10-05
    • 2017-11-07
    相关资源
    最近更新 更多