neo4j的安装配置及用途

阿黎逸阳

picture.image 精选Python、SQL、R、MATLAB等相关知识,让你的学习和工作更出彩(可提供风控建模干货经验)****

我第一次建立关联图谱用的是R语言 ,通过写代码帮公安 挖掘团伙犯罪 ,并用图形展示团伙之间的关联关系。

如有需要请关注本公众号的后续文章,会手把手教大家用R搭建关联图谱,做成app,让没有安装R的电脑通过你分享的网址链接看到罪犯的关联关系。

公司最近又有挖掘团伙犯罪的项目,这次想在关联关系的基础上 利用 模型算法 寻找犯罪团伙。 这一次选用的是基于java实现的开源图数据库 neo4jPython ,搭建关联图谱。

本文向大家介绍neo4j的安装配置及用途,并教大家如何向neo4j导入数据,避免深坑。

一、什么是neo4j?

picture.image

neo4j是 由java实现的开源 非关系型图数据库, 不同于Mysql关系型数据库。 neo4j 除了能像普通数据库存储一行一行的数据外,还可以很方便地存储数据之间的关系信息。

例如,对于社交网络的用户数据库,除了要存储每个用户的姓名、性别、喜好等基本信息外,还需存储每个用户和哪个用户是情侣,和哪些用户是朋友等关系数据,这时neo4j这样的图数据库就可以派上用场啦!

通过下图,大家可以了解什么是图数据库以及什么是关系数据。

picture.image

为了更加直观,本文选用了家有儿女中男女主人公夏东海和刘梅做为示例。

在上图中,包含两个 标签 为“人”的数据 节点 ,分别代表夏东海和刘梅两个人。这两个数据节点还包含姓名、住址、职业等 属性信息 , 用于表示用户的基本信息,这类似于常规数据库中的两行。

除此之外,两个数据节点之间还包含了两条关系数据。即夏东海娶了刘梅,刘梅和夏东海生活在一起。

把这些数据存储在neo4j图数据库中,利用这些关系数据,可以方便地作出基于关系的查询。比如,刘梅的丈夫是谁?刘梅和谁生活在一起?

二、neo4j有哪些用途?

picture.image

1 社交网络

根据用户的好友关系网给用户推荐新朋友。例如,QQ中推荐新朋友。如果两个人在QQ中不是朋友,但共同好友超过10个,系统发送消息给这两个人推荐对方。

2 智能推荐引擎

通过分析用户的历史数据为用户推荐产品。例如,淘宝中根据用户的购买记录、收藏记录、浏览记录给用户推荐喜好的产品。

3 知识图谱

根据知识点之间的关系建立知识图。例如,百度搜索关键词Python会展示相关词条,Python官网、python百度百科、Python入门教程等。

4 反欺诈

根据犯罪团伙之间的资金往来、通讯交往构建反欺诈网络。例如,罪犯A给罪犯B转账10万元,罪犯B给罪犯C转账50万元。现在警方通过线索已经确定了罪犯A的犯罪事实,通过构建账务往来关系网,可以找到犯罪团伙的其他犯罪分子。

5 网络、数据中心管理

用neo4j建立设备之间的关系,方便对整个系统进行管理。

三、安装neo4j

picture.image

1 安装Java JDK

neo4j是基于Java的图形数据库,运行neo4j需要启动JVM进程,因此必须安装JAVA SE的JDK。可以从Oracle官方网站下载 Java SE JDK,也可以在公众号中回复“JDK安装”直接获取。

2 下载neo4j安装文件

从neo4j官网下载最新版本的社区版,可免费使用neo4j。但是从官网下载neo4j,速度比蜗牛还慢,着急要用的我当时急得不行,只好到网上去找别人下载好的网盘链接。如需要,可以在公众号中回复“neo4j安装”直接获取。

3 解压neo4j安装文件

我想把neo4j安装到D盘,所以在D盘中建了一个neo4j文件夹。把下载好的neo4j压缩包放到该文件夹中,并解压到该文件夹,就安装好了neo4j(无需常见软件的安装步骤)。

picture.image

4 创建系统环境变量

电脑右击—>属性—>高级系统设置—>环境变量—>新建系统变量—> 在path中添加路径。

picture.image

5 启动neo4j

在解压neo4j的文件夹按shift+右键—>打开cmd—> 输入neo4j.bat console—>回车,即可启动neo4j 。

6 使用neo4j

在浏览器中输入:http://localhost:7474/browser/,即可看到neo4j的启动界面。

picture.image

四、导入数据

picture.image

之前在向neo4j中导入数据时碰到了很多坑,折腾了很久。为了 避免 大家再次踩坑 ,现总结如下。

1 删除所有节点和关系

这一步不是必须的,只是为了数据清晰不混淆,一般在导入数据之前删除原来存的节点和关系。

  
MATCH (n)  
OPTIONAL MATCH (n)-[r]-()  
DELETE n,r

2 把数据放入指定文件夹中

把数据放入D:\neo4j\neo4j-community-3.5.5\import文件夹中

3 从本地导入不带表头的数据

  
using periodic commit 10000 load csv from"file:/artist.csv"as line create (:test {id:line[0], name:line[1]})

4 从本地导入带表头的数据

  
using periodic commit 10000 load csv WITH HEADERS from"file:/artists\_head.csv"as line CREATE (:Artist { name: line.Name, year: toInteger(line.Year)})

如需本文中的artist.csv文件实现上述语句,请在公众号中回复“neo4j中的artist”即可免费获取。

这一次想一起推送关于neo4j的几篇文章,大家久等啦,以后我会争取更快的更新频率。大家有好的想法可以写成文章,欢迎联系我发表,可以署上你的名字,并提供相应报酬picture.image

参考文献

  
https://www.cnblogs.com/zhangchao0515/p/11985676.html  
https://blog.csdn.net/weixin_44304265/article/details/89341851

picture.image

往期回顾:

3D星空图

3D星空图V2版

用python绘制皮卡丘

娱乐圈排行榜动态条形图绘制

picture.image

扫一扫关注我

19967879837

我的 微信号、手机号

转发与在看是更好的支持

0
0
0
0
评论
未登录
暂无评论