添加边缘标签Titan-Rexster

时间:2013-10-24 14:00:03

标签: ruby gremlin edges titan rexster

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

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

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定义标签,我明白了。但是,我不能为我的生活弄清楚如何添加此标签,以便我能够将此边添加到图表中。

顺便说一句,添加顶点可以正常工作。


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

1 个答案:

答案 0 :(得分:1)

Titan TypeMaker已经看到一些严重的API变化,从0.3.x到0.4.x.您可以在此处阅读有关如何定义边缘标签的信息:

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

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