天天看点

试一试图数据库cayley安装go:安装mongodb:安装Cayley:如何插入节点?

这是谷歌的一个开源免费的图数据库。是用Go语言写的。支持多种存储后端。

之所以要试这个,是因为它能够水平可扩展,就是说它支持分片。backend配置成分布式的存储系统就可以了。我选择mongodb。

由于网络的原因,我只能离线安装了。需要安装这三个东西:Golang, Mongo, Cayley。

解压tar.gz文件后,打开doc目录下的install.html, 里面有安装教程:

然后下面有 Test your installation。

运行那个小程序之前要先设置GOPATH. 根据提示“How to Write Go Code ”,打开code.html。

里面提到可以运行下面这个指令查看默认的路径。

默认路径是~/go。 这个路径我挺满意的就不改它了。 这个路径就是go的workspace所在的地方。 如果你要改这个路径就要按文档里说的将GOPATH加入到环境变量里。

如果你愿意可以按照文档里说的,弄一个hello world的程序跑一下。

解压完之后,在某个目录下新建一个配置文件。我的在/home/ubt1604/mongodb/mongodb.conf

主要就是配置logpath和dbpath这两个路径。其他都默认就OK,内容如下:

启动mongodb:

关闭mongodb

解压完之后打开docs目录下的Quickstart-As-Application.md,最好用markdown工具打开一下,看的清楚一些。多看几遍,你会发现那个init根本用不上。

复制一份cayley.cfg.example,改名为cayley.cfg.overview,内容如下:

db_path是设置backend的。我们用mongodb作为backend。注意ubuntu是mongodb所在的 主机名,不是IP。

把已有的数据加载到库里:

如果你之前已经执行过一次了,可以在命令最后加上一个 -ignoredup。

启动cayley:

–host=0.0.0.0是说外部机器都可以访问到cayley。

在输入框输入

<code>graph.Vertex("&lt;dani&gt;").All()</code>,然后点击Query,就看到如下结果:

试一试图数据库cayley安装go:安装mongodb:安装Cayley:如何插入节点?

再输入<code>graph.Vertex("&lt;dani&gt;").Out("&lt;follows&gt;").All()</code>

试一试图数据库cayley安装go:安装mongodb:安装Cayley:如何插入节点?

语言选择Gizmo,输入<code>g.V("&lt;dani&gt;").Tag("source").Out("&lt;follows&gt;").Tag("target").All()</code>

试一试图数据库cayley安装go:安装mongodb:安装Cayley:如何插入节点?

根据官方的说法,Gizmo - a JavaScript, with a Gremlin-inspired* graph object.

就是说如果使用Quickstart-As-Application.md里给的JavaScript代码,webUI上语言就要选择Gizmo。

跟文档一样,搞一个.nq的文件,然后导进去。

在data下新建一个familytree.nq。内容如下:

然后

<code>./cayley load --config=cayley.cfg.overview --quads=data/familytree.nq --alsologtostderr</code>

再次启动cayley

最后在webui里选择Visualize,语言选择Gizmo,输入如下查询语句就可以看到全家福了

试一试图数据库cayley安装go:安装mongodb:安装Cayley:如何插入节点?

文章里有几个demo,我查出来的结果跟他的不一样。可能是版本不同吧。

cayley环境是我在虚拟机里做的。检索的时候有卡住的情况。不知道是cayley不稳定还是虚拟机本来就卡。总之就是有点问题。如果你们也遇到这种情况请让我知道。