1

我一直在尝试连接到已经包含来自 gremlin 2.5.0(groovy) 的一些数据的 Bitsy graphDB。

我正在从 gremlin shell 执行此操作,但尚未尝试从 eclipse 中引用类。

gremlin> BitsyGraph g = new BitsyGraph(java.nio.file.Paths.get('/home/ubuntu/BitsyDB');

但是我收到以下错误:

groovysh_evaluate: 54: unable to resolve class BitsyGraph

我已经完成了包com.lambdazen.bitsy.*的导入并且导入工作。

我怎样才能让它工作?或者我应该用所有这些命令编写一个 groovy 脚本还是我们可以编写一个 gremlin 脚本?我是图形数据库的新手 :)

任何帮助将不胜感激。

4

1 回答 1

1

这里有很多问题。首先,请注意 Bitsy 与 TinkerPop 2.4.0 而不是 2.5.0 正式兼容,因此虽然它可能在 2.5.0 Gremlin 控制台中工作,但我建议退回到 2.4.0。

接下来,您必须对.*导入有点小心,因为它们没有经过验证:

gremlin> import anything.that.i.want.*
==>import com.tinkerpop.gremlin.*
...
==>import anything.that.i.want.*

最后,找不到您的类的原因是因为 Bitsy 不是 TinkerPop 维护的蓝图实现,因此不随 Gremlin 发行版提供。您可以执行以下两项操作之一:

  1. 将 Bitsy jar 文件复制到 Gremlin 类路径 - 确保获取所有依赖项,否则它可能无法正常工作。
  2. 使用 Grape 为您的 Gremlin 控制台会话拉入 Bitsy

对于后者,您可以发出以下命令:

gremlin> Grape.grab([group:'com.lambdazen.bitsy',module:'bitsy',version:'1.5.1'])
==>null
gremlin> import com.lambdazen.bitsy.BitsyGraph                                   
==>import com.tinkerpop.gremlin.*
==>import com.tinkerpop.gremlin.java.*
...
==>import com.lambdazen.bitsy.BitsyGraph
gremlin> import java.nio.file.*                                                  
==>import com.tinkerpop.gremlin.*
==>import com.tinkerpop.gremlin.java.*
...
==>import java.nio.file.*
gremlin> dbPath = Paths.get("/tmp/bitsy")                                        
==>tmp
==>bitsy
gremlin> g = new BitsyGraph(dbPath)
08:04:03.392 [main] INFO  c.l.b.s.FileBackedMemoryGraphStore - Starting graph FileBackedMemoryGraphStore-2(path = /tmp/bitsy)
...
08:04:03.505 [main] DEBUG com.lambdazen.bitsy.store.LoadTask - Using RecordReader for CommittableFileLog(/tmp/bitsy/txB.txt)
==>bitsygraph[/tmp/bitsy]
于 2014-06-24T12:05:40.477 回答