文档 1.3 版本已不再积极维护,你当前浏览的是一份归档快照。 最新文档请参阅 最新版本。
Gremlin-Console
Gremlin-Console 是由 Tinkerpop 自己开发的一个交互式客户端,用户可以使用该客户端对 Graph 做各种操作,主要有两种使用模式:
- 单机离线调用模式
- Client/Server 请求模式
1 单机离线调用模式
由于 lib 目录下已经包含了 HugeCore 的 jar 包,且 HugeGraph 已经作为插件注册到 Console 中,用户可以直接写 groovy 脚本调用 HugeGraph-Core 的代码,然后交由 Gremlin-Console 内的解析引擎执行,就能在不启动 Server 的情况下操作图。
这种模式便于用户快速上手体验,但是不适合大量数据插入和查询的场景。下面给一个示例:
在 script 目录下有一个示例脚本 example.groovy:
其实这一段 groovy 脚本几乎就是 Java 代码,不同之处仅在于变量的定义可以不写类型声明,以及每一行末尾的分号可以去掉。
g.V()是获取所有的顶点,g.E()是获取所有的边,toList()是把结果存到一个 List 中,参考 TinkerPop Terminal Steps。
下面进入 gremlin-console,并传入该脚本令其执行:
这里的
--会被 getopts 解析为最后一个 option,这样后面的 options 就可以传入 Gremlin-Console 进行处理了。-i代表Execute the specified script and leave the console open on completion,更多的选项可以参考 Gremlin-Console 的源代码。
可以看到,插入了 6 个顶点、6 条边,并查询出来了。进入 console 之后,还可继续输入 groovy 语句对图做操作:
更多的 Gremlin 语句请参考 Tinkerpop 官网。
2 Client/Server 请求模式
因为 Gremlin-Console 只能通过 WebSocket 连接 HugeGraph-Server,默认 HugeGraph-Server 是对外提供 HTTP 连接的,所以先修改 gremlin-server 的配置。
注意:将连接方式修改为 WebSocket 后,HugeGraph-Client、HugeGraph-Loader、HugeGraph-Hubble 等配套工具都不能使用了。
将 channelizer: org.apache.tinkerpop.gremlin.server.channel.HttpChannelizer 修改成 channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer 或直接注释,然后按照步骤启动 HugegraphServer。
下面进入 gremlin-console:
连接 server,需在配置文件中指定连接参数,在 conf 目录下有一个默认的 remote.yaml:
连接成功之后,如果在启动 HugeGraphServer 的过程中导入了示例图 example.groovy,就可以在 console 中直接进行查询
注意:在 Client/Server 模式下,所有和 Server 有关的操作都要加上
:>,如果不加,表示在 console 本地操作。
还可以把多条语句放在一个字符串变量中,然后一次性发给 Server:
更多关于 gremlin-console 的使用,请参考 Tinkerpop 官网