【问题标题】:Adding Edge Label Titan-Rexster添加边缘标签 Titan-Rexster
【发布时间】:2013-11-03 06:58:21
【问题描述】:

我正在使用 Rexster 和 Cassandra 实现 Titan 图数据库。

我尝试使用 Gremlin 在 Ruby 中添加这样的边缘:

query = 'a = g.addVertex(null,[name:\'' +
someName +
'\']); g.addEdge(null, g.getVertex(' +
someVertexId + '), a, \'labelname\', [weight:' + 
someFloatValue.round(5) + 'd]); g.commit();'

#This formats to the following:
#"a = g.addVertex(null,[name:'myawesomename']); g.addEdge(null, g.getVertex(1337), a, 'labelname', [weight:0.30685d]); g.commit();"

运行后出现以下错误:

#<Rexster::Rest::RexsterError: Graph server returned error: javax.script.ScriptException: java.lang.IllegalArgumentException: The type of given name is not a label: labelname>

好像我没有定义名称为labelname 的标签,我明白了。但是,我一生都无法弄清楚如何添加此标签,因此我可以将这条边添加到图表中。

顺便说一句,添加顶点效果很好。


我正在使用rexster_ruby gem,它连接到运行titan.sh 脚本的titan-server 0.4.0 的ubuntu 12.04 机器。

【问题讨论】:

    标签: ruby gremlin edges titan rexster


    【解决方案1】:

    Titan TypeMaker 从 0.3.x 到 0.4.x 的 API 发生了一些重大变化。您可以在此处阅读有关如何定义边缘标签的信息:

    https://github.com/thinkaurelius/titan/wiki/Type-Definition-Overview#creating-edge-labels

    建议您在初始化图形时使用 TypeMaker,最好在 rexster_ruby、REST 等库之外使用。只需从 Gremlin REPL 初始化图形即可。更好的是,将这些类型定义封装在一个 groovy 类中以维护您的架构。

    【讨论】:

      猜你喜欢
      • 2016-05-17
      • 1970-01-01
      • 2015-02-15
      • 1970-01-01
      • 2010-12-20
      • 2016-08-01
      • 2014-11-27
      • 1970-01-01
      • 2014-02-15
      相关资源
      最近更新 更多