点击上方 蓝字 每天学习数据库

万众瞩目的《权力的游戏》第八季,伴随着“史诗级大烂尾”的哀怨声,终于完结了!

面对剧中错综复杂的人物关系,新粉们是不是已经捋不清楚了?不过,看到人物、节点、关系、属性,这些熟悉的名词,各位想到了什么?

是的, 图数据库! 一向以处理“关系的连接”称霸江湖的图数据库

接下来我们试一试好玩的,用图数据库Neo4j,来梳理一下权游的人物关系图。

Ps:贴心的小编在后面奉上了 Neo4j最全的安装配置教程 !快快收藏起来~

首先总览一下剧中人物关系图,几行代码就可清楚地展示所有人物间的连接,这就是图 数据库 的魅力所在。

LOAD CSV WITH HEADERS FROM "file:///asoiaf-all-edges.csv" AS row MERGE (src:Character {name: row.Source}) MERGE (tgt:Character {name: row.Target}) MERGE (src)-[r:INTERACTS]->(tgt)SET r.weight = toInt(row.weight)

MATCH p=(:Character)-[:INTERACTS]-(:Character)

RETURN p

LIMIT 50

图1.《权利 的游戏》人物关系图

关键人物 怎么看呢?

关键节点:如果一个节点,位于其它两个节点所有的最短路径上,即称为关键节点。下图是我们找出的网络中所有的关键节点:

MATCH (a:Character), (b:Character) WHERE id(a) > id(b)MATCH p=allShortestPaths((a)-[:INTERACTS*]-(b)) WITH collect(p) AS paths, a, bUNWIND nodes(head(paths)) as c // first pathWITH * WHERE NOT c IN [a,b] AND all(path IN tail(paths) WHERE c IN nodes(path))RETURN a.name, b.name, c.name AS PivotalNode, length(head(paths)) as pathLength, length(paths) as pathCount SKIP 490 LIMIT 10

图2. 关键节点

接下来我们用拿"Anguy"和"Aeron-Greyjoy"来校验一下,查看两个节点的最短路径。

MATCH (a:Character {name: "Eustace-Brune"}), (b:Character {name: "Cressen"})MATCH p=allShortestPaths((a)-[:INTERACTS*]-(b))RETURN p

可看到结果刚好就是"Arya-Stark"和"Theon-Greyjoy"

图3. 关键节点校验

Amazing,如此“凌乱”的关系网,Neo4j秒秒钟可以理清,点个赞!

这么好用的图数据库,我们怎么上手呢?莫着急, 接下来就是关于Neo4j的简介,以及 史上最全的Neo4j安装配置教程 ,满满都是干货,快一起实践起来 吧~

Neo4j数据库的优势

Neo4j是基于 Java 语言编写图形数据库,是一种基于图论实现的新型 NoSQL 数据库。这种数据库在处理社交推荐,物流运输,欺诈检测,关系分析等领域有巨大优势。

在创建节点的时候就已经把关系给建立起来,避免了在复杂查询场景下的处理

基于JVM实现

提供一套易于理解的查询语言Cypher以及内置的可视化UI

很好的支持ACID,有事务机制

它很容易表示连接的数据

检索/遍历/导航更多的连接数据是非常容易和快速的

它非常容易地表示半结构化数据

Neo4j CQL查询语言命令是人性化的可读格式,非常容易学习

它使用简单,功能强大的数据模型。

它不需要复杂的连接来检索连接的/相关的数据,因为它很容易检索它的相邻节点或关系细节没有连接或索引

Neo4j是原生的图数据库引擎,由于底层直接以图的形式存储节点和关系,可以使用图结构的自然伸展特性来设计免索引邻近节点遍历的查询算法。Neo4j具有非常高效的查询性能,相比于RDBMS可以提高数倍乃至数十倍的查询速度。

Neo4j安装及实践

首先,奉上使用教程,Neo4j教程地址:http://neo4j.com.cn/public/cypher/default.html,接下来正式开始安装~

系统:Win10 64位

第一步: 安装Java JDK

Neo4j是用Java语言编写的图形数据库,因此运行时需要启动JVM进程,故需安装JAVA SE的JDK, 注意,此处有坑!

Neo4j企业或社区版目前不兼容Java 11及以上 !例如安装Java 12,在验证Neo4j的安装和配置是否成功时,是会报错的,如下图:

避坑结束~此处我们下载 Java 8 , 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

下载可能需注册登录 Oracle 账户,按流程创建/登录即可~

Ps: 不知如何安装&配置Java SE JDK的同学,参考https://blog.csdn.net/qq_35246620/article/details/61208961

已成功配置的老司机,可直接跳第二步!安装完成后,cmd输入java -version检查是否安装好

第二步:下载安装Neo4j

从官网下载最新版 Neo4j 社区版(Community)

下载好后解压到自己想放的盘里,例如:F:\neo4j-community-3.5.6

Neo4j应用程序有如下主要的目录结构:

bin目录:用于存储Neo4j的可执行程序;

conf目录:用于控制Neo4j启动的配置文件;

data目录:用于存储核心数据库文件;

plugins目录:用于存储Neo4j的插件;

Neo4j的环境配置:

点击此电脑,右键“属性”,进入高级系统设置,点击环境变量

新建系统变量NEO4J_HOME,变量值你自己的Neo4j主目录

设置完成,点击确定。同样再找到系统变量Path,最后加入 %NEO4J_HOME%\bin

接下来 检查Neo4j环境变量配置成功与否 。

打开命令提示符,输入echo %NEO4J_HOME% 和 echo %Path% ,如果显示你刚刚设置的值,那么你的配置已成功完成。

启动服务并验证,以cmd管理员身份运行neo4j.bat console,并回车(一定要以管理员身份进入cmd,否则会出现警告)

此时可 访问 服务器 了, 通过浏览器输入 http://localhost:7474/ , 初始的用户名和密码 均是neo4j,输入密码,点击connect

初次使用系统会要求你改密码,输入新密码即可~

至此,Neo4j的安装已全部完成。

现在可以来测试一下~

登录 http://localhost:7474/ 后,点击左侧数据库图标,可看到操作数据的面板

在命令框内输入命令,例如:

create (n:Person{name:'grace',title:'Product Operation Manager'}) return n;

点击右侧run图标, 可看到4种视图模式:Graph、Table、Text和Code,不同模式效果如下图所示:

给看到这步的自己点个赞吧!快快试起来,小伙伴们可在留言区一起交流~

人物关系java_《权游》人物关系你还捋不清?Neo4j帮你5分钟搞定!相关推荐

  1. 听杰伦新歌发现QQ音乐元宇宙,权游角色关系可视化地图、VNote 工具(Typora:勿cue谢谢)、最新论文 | ShowMeAI资讯日报

    ShowMeAI日报系列全新升级!覆盖AI人工智能 工具&框架 | 项目&代码 | 博文&分享 | 数据&资源 | 研究&论文 等方向.点击查看 历史文章列表, ...

  2. 全称是什么_JDK,JRE和JVM是什么?三者有什么关系?二分钟搞定!!!

    What is Java JDK,JRE and JVM 1.1 明确什么是 JDK, JRE和JVM JDK:英文全称 Java Development Kit,是Java的开发工具包 JDK是提供 ...

  3. FOHEART·X动捕+“虎牙直播”,3分钟搞定虚拟人物直播!

    FOHEART·X惯性动捕现已全面接入"虎牙直播" 第一步: 打开网址:https://www.huya.com/download/#players_pc 下载"虎牙直播 ...

  4. 机器人画家,三分钟搞定一幅人物黑白肖像

    逆天的机器人,现在要进军艺术圈了. 小编曾经去过一次科技馆,看见过一种可以为人类画像的机器人,当时不少人为之一振,惊呼神奇. 在此次MWC 2016大会上,也出现了一款类似的机器人,在画画上面的天赋还 ...

  5. 十分钟,我搞定了一个人物检测模型

    原作:Supervise.ly 铜灵 编译自 Hackernoon 量子位 出品 | 公众号 QbitAI 人物检测确实是个老生常谈的话题了,自动驾驶中的道路行人检测.无人零售中的行为检测.时尚界的虚 ...

  6. 五分钟搞懂Xen、KVM、Qemu间的关系和区别

    Aha,忽然发现我也是个标题党,十分钟搞定某某技能这种标题最吸引人了.当然我也不是华而不实,是不是干货,你读了才知道.话说,接触Xen这么久了,现在才花时间搞清楚这个问题,要不是需要给别人解释,还不知 ...

  7. 【用matplotlib,wordcloud和pyecharts分析三国的分词,词频,词性,小说人物出场次数排序小说人物关系】

    前言 为了顺利完成作业,经过几天的网上查阅完成了[根据第1部分自然语言处理教学内容,请选择一本你喜欢的小说,利用上课讲的但不限于授课内容,对该小说进行分析.比如分析该小说的分词,词频,词性,小说人物出 ...

  8. html 3d 人物,jquery html5三维线性人物关系图特效代码

    特效描述:jquery html5三维线性 人物关系图特效.人物关系图特效 代码结构 1. 引入JS 2. HTML代码 require.config({ packages:[{ name:'echa ...

  9. 《权游》第八季震撼开播,10行代码动态展示其中的爱恨情仇

    笔者是<权力的游戏>忠实粉丝,而随着第八季的开播,我相信整部剧也将迎来高潮,人类要跟亡者军团进行交战了,到底是亡者军队击溃人类,还是人类打败亡者军队呢?王座到底会花落谁家? 让我们用R语言 ...

最新文章

  1. 使用Cydia Substrate Hook Android Java世界
  2. 在 Oracle 和 PHP 中使用 LOB
  3. bilibili基于 Flink 的机器学习工作流平台在 b 站的应用
  4. 学习Spring Boot:(二十三)Spring Boot 中使用 Docker
  5. 2021年中国在线旅游直播专题分析
  6. 解决发http get请求的时候不成功,出现android.os.NetworkOnMainThreadException的异常
  7. [转载] python中numpy.concatenate()函数的使用
  8. 了解Docker、Ubuntu20.04安装docker教程
  9. xampps mysql无法启动
  10. 自定义http报头_Http请求报头设置
  11. Monte Carlo Algorithms
  12. 小型迷宫实现---迷宫算法(递归回溯法)
  13. 自学笔记----三极管
  14. word嵌入对象依损坏_在Word 2010中,当文档中插入图片对象后,可以通过设置图片的文字环绕方式进行图文混排,下列是Word提供的文字环绕方式的是()。...
  15. 【SAP】SAP SD,中英日专业名词对照表
  16. 软件测试之linux——自动化
  17. 踩坑sunbeam rbt 去除host reads
  18. java计算机毕业设计ETC用户自驾游推荐系统MyBatis+系统+LW文档+源码+调试部署
  19. 云海麒麟服务器安装linux,性能靠谱可高度扩展 云海麒麟YH-5212S
  20. 测试薪资差距悬殊,我们对比北上深杭,原来藏着这些秘密!

热门文章

  1. 神经网络可视化有3D版本了,美到沦陷!(已开源)
  2. linux打印信息命令行,技术|从 Linux 命令行进行打印
  3. 保护视力的软件:定时提醒你休息的桌面工具EyeLeo
  4. 对手游《阴阳师》的一些看法
  5. 高通android 解决modem crash
  6. 浅谈信息学竞赛考场策略及程序测试
  7. 1号店于刚:未来电商发展的十大趋势
  8. microsoft edge、应用商店、爱奇艺无法打开,解决办法和原因分析
  9. JavaScript,nodejs实现保留n位小数点
  10. 计算机考研水区旱区名单,2020考研水旱区有哪些呢-考研经验