首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Neo4j 和图数据库起步

我们将安装 Neo4j 并通过网页客户端在图中插入并查询数据。

-- Ruth Holloway

编译自  https://opensource.com/article/17/7/neo4j-graph-databases-getting-started

作者  Ruth Holloway

译者  happygeorge01

在这个三篇文章系列中的第二篇中,安装 Neo4j 并通过网页客户端来在图中插入和查询数据。

在本系列的第一篇

[1]

中,我们介绍了图数据库中的一些核心概念。在这篇,我们将安装Neo4j

[2]

并通过网页客户端在图中插入并查询数据。

可通过他们的网站

[3]

下载社区版的 Neo4j!你可以下载 Windows 或 OSX 版来测试,也有各 Linux 发行版对应的版本,还有 Docker 版。

我会在 Debian 9 (stretch) 上安装软件。你可在这里

[4]

查看完整说明。如果你正在使用 Debian 8 (jessie) 或更老的版本,你可以安装当前的版本,但会出现的一点小问题是 jessie 中并没有安装 Neo4j 运行所需要的 Java 8 环境。

在我的系统中,出于某些原因,我创建好 之后它就可以很轻松地开始了。Neo4j 给了一个“最大打开文件数”的警告,但因为是测试环境所以我不太需要关心这个问题。Neo4j 默认只会监听本机 localhost 上的连接。如果你的机器是 Debian ,那这很好,但是我的不是。我修改了 ,取消注释了下面这行:

在重启 Neo4j 之后,我可以通过 7474 端口来访问服务器的 Neo4j 服务。默认的用户名和密码是 和 ; 你需要设置一个新密码,然后会出现初始页面:

Installing Neo4J

让我们在 Neo4j 上创建上篇文章

[1]

中使用过的图。如下图:

Graph database image 2, defining a new type of node

类似 MySQL 和其它的数据库系统,Neo4j 的各类操作也使用一套查询语句。Cypher,就是 Neo4j 使用的查询语句,但有一些语法区别需要去学习和注意。节点node需要用圆括号表示,而关系relationship需要放在方括号中。因为这是系统中唯二的数据类型,所以了解这些就够了。

首先,我们创建所有的节点。你需要将下面内容复制黏贴到浏览器顶部区域中,在那里运行查询语句。

注意,在标签前的字符就是变量。这些信息会在出现在各个地方,但我们在这里并不会用到。但你不能不指定相应信息就盲目创建,所以我们使用它们然后就忽略它们。

在上面一共创建了 10 个节点和 13 个属性。想查看它们? 通过下面语句来匹配查询所有节点:

这条语句会返回一个可视化的图。(在应用内,你可以在返回的图中使用”全屏”按钮来查看大图)。你将会看到类似下面的图像:

Visual graph

添加关系需要一点技巧;你需要连接的节点必须是 “在限定范围内的in scope”,意思连接的节点是在当前查询语句所限定的范围内的。我们之前使用的查询语句范围太大,所以让我们找到 John 和 Jane 并让他们结婚:

这条语句会创建一个关系并设置两个属性。重新运行该 语句会显示那个关系。你可以通过鼠标点击任意的节点或关系来查看它们的属性。

我们来添加其它的关系。比起使用一些列的 语句,我会一次性做完并从中 创建多个关系。

重新运行该 语句,你将会看到下面图像:

Graph after re-querying with MATCH

如果你喜欢,你可以将节点拖拉成像我之前画的图的样子。

在这个例子中,我们唯一使用的 就是 所有的东西。下面这个查询会返回两个结婚了的夫妻并显示他们之间的关系:

在一个更复杂的图中,你可以做更多的细节查询。(LCTT 译注:此例子为 Neo4j 自带例子的)例如,你有关于电影和人的节点,还有像 、、 等属性的关系,你可以运行下面这个查询:

……上述是查询和 Mel Gibson 相关的所有影片。但如果你想查询他演过的所有电影,下面这条语句会更有用:

还有更多更炫酷的 Cypher 语句可以使用,但我们就简单介绍这些。更详细完整的 Cypher 语句可以在 Neo4j 的官网

[5]

上查看, 并且也有很多例子可以练习。

在此系列的下篇文章中,我们会通过写些 Perl 脚本来展示如何在应用中使用图数据库。

via:https://opensource.com/article/17/7/neo4j-graph-databases-getting-started

作者:Ruth Holloway

[7]

译者:happygeorge01校对:wxy

本文由LCTT原创编译,Linux中国荣誉推出

LCTT 译者

happygeorge01

共计翻译:1篇

贡献时间:1 天

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171221G034E300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券