我是Titan的新手 - 我加载了titan并成功运行了GraphOfTheGods示例,包括给出的查询。接下来,我继续尝试批量加载csv文件以创建图表,并按照10的权力中的步骤进行操作 - 第1部分http://thinkaurelius.com/2014/05/29/powers-of-ten-part-i/
我在加载wiki-Vote.txt时遇到错误
gremlin> g = TitanFactory.open("/tmp/1m") Backend shorthand unknown: /tmp/1m
我试过了:
g = TitanFactory.open('conf/titan-berkeleydb-es.properties’)
但在load-1m.groovy的下一步中出现错误
==>titangraph[berkeleyje:/titan-0.5.4-hadoop2/conf/../db/berkeley] No signature of method: groovy.lang.MissingMethodException.makeKey() is applicable for argument types: () values: [] Possible solutions: every(), any()
任何暗示下一步该做什么?我第一次使用groovy。使用gremlin需要什么样的常规专业知识
答案 0 :(得分:2)
该博客文章适用于Titan 0.4.x.当Titan达到0.5.x时,API发生了变化。帖子中讨论的相同原则通常适用于数据加载,但语法在不同的地方有所不同。目的是在Titan 1.0全面支持TinkerPop3时以某种形式更新这些帖子。在此之前,您需要将这些代码示例转换为修订后的API。
例如,创建berkeleydb数据库的简便方法是:
g = TitanFactory.build()
.set("storage.backend", "berkeleyje")
.set("storage.directory", "/tmp/1m")
.open();
答案 1 :(得分:0)
经过今天的大量实验,我终于明白了。需要做出很多改变:
对于后代,这是应该有效的修改过的脚本(从0.5.4开始):
g = TitanFactory.build().set("storage.backend", "berkeleyje").set("storage.directory", "/tmp/1m").open()
m = g.getManagementSystem()
k = m.makePropertyKey('userId').dataType(String.class).cardinality(Cardinality.SINGLE).make()
m.buildIndex('byId', Vertex.class).addKey(k).buildCompositeIndex()
m.makeEdgeLabel('votesFor').make()
m.commit()
getOrCreate = { id ->
def p = g.V('userId', id)
if (p.hasNext()) {
p.next()
} else {
g.addVertex([userId:id])
}
}
new File('wiki-Vote.txt').eachLine {
if (!it.startsWith("#")){
(fromVertex, toVertex) = it.split('\t').collect(getOrCreate)
fromVertex.addEdge('votesFor', toVertex)
}
}
g.commit()