0

我正在使用 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>

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

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


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

4

1 回答 1

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 类中以维护您的模式。

于 2013-10-24T14:27:06.067 回答