neo4j的安装配置及用途

时间:2022-07-24
本文章向大家介绍neo4j的安装配置及用途,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

阿黎逸阳

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

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

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

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

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

一、什么是neo4j?

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

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

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

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

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

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

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

二、neo4j有哪些用途?

1 社交网络

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

2 智能推荐引擎

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

3 知识图谱

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

4 反欺诈

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

5 网络、数据中心管理

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

三、安装neo4j

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(无需常见软件的安装步骤)。

4 创建系统环境变量

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

5 启动neo4j

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

6 使用neo4j

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

四、导入数据

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

1 删除所有节点和关系

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

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

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

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

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的几篇文章,大家久等啦,以后我会争取更快的更新频率。大家有好的想法可以写成文章,欢迎联系我发表,可以署上你的名字,并提供相应报酬。

参考文献

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