我正在使用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。
答案 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类中以维护您的架构。