如何连接gremlin与bitsy数据库



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

我正在从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脚本吗?我是新来的图形DB:)

这里有很多问题。首先,请注意,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将Bitsy拉入您的Gremlin控制台会话
对于后者,可以发出以下命令:
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]

最新更新