Neo4j介绍

本文详细介绍了Neo4j,一款基于Java的无模式图形数据库,包括其概念、优势、构建模块(节点、属性、关系和标签)、主要应用场景(如社交媒体、推荐系统等)、环境搭建、数据浏览器、CQL查询语言、索引、约束、备份恢复以及调优策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Neo4j概述

Neo4j是一个开源的 无Shcema的 基于java开发的 图形数据库,它将结构化数据存储在图中而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎。程序数据是在一个面向对象的、灵活的网络结构下,而不是严格、静态的表中,但可以享受到具备完全的事务特性、企业级的数据库的所有好处。https://db-engines.com/en/ranking

2.图形数据库优势

在这里插入图片描述
优势总结:

  • 性能上,对长程关系的查询速度快
  • 擅于发现隐藏的关系,例如通过判断图上两点之间有没有走的通的路径,就可以发现事物间的关联

3.Neo4j 模块构建

Neo4j 主要构建块

  • 节点
  • 属性
  • 关系
  • 标签
  • 数据浏览器

节点

节点是图表的基本单位。 它包含具有键值对的属性

属性

属性是用于描述图节点和关系的键值对
Key =值
其中Key是一个字符串
值可以通过使用任何Neo4j数据类型来表示

关系

关系是图形数据库的另一个主要构建块。 它连接两个节点,如下所示。
在这里插入图片描述
这里Emp和Dept是两个不同的节点。 “WORKS_FOR”是Emp和Dept节点之间的关系。
因为它表示从Emp到Dept的箭头标记,那么这种关系描述的一样
Emp WORKS_FOR Dept
每个关系包含一个起始节点和一个结束节点。
这里“Emp”是一个起始节点。
“Dept”是端节点。
由于该关系箭头标记表示从“Emp”节点到“Dept”节点的关系,该关系被称为“进入关系”到“Dept”节点。并且“外向关系”到“Emp”节点。
像节点一样,关系也可以包含属性作为键值对。

标签

Label将一个公共名称与一组节点或关系相关联。 节点或关系可以包含一个或多个标签。 我们可以为现有节点或关系创建新标签。 我们可以从现有节点或关系中删除现有标签。
从前面的图中,我们可以观察到有两个节点。
左侧节点都有一个标签:“EMP”,而右侧节点都有一个标签:“Dept”。
这两个节点之间的关系,也有一个标签:“WORKS_FOR”
注: -Neo4j将数据存储在节点或关系的属性中。

4.Neo4j的主要应用场景

社交媒体和社交网络

当使用图形数据库为社交网络应用程序提供动力时,可以轻松利用社交关系或根据活动推断关系。
查询社区聚类分析,朋友的朋友推荐,影响者分析,共享和协作关系分析等

推荐引擎和产品推荐系统

图形驱动的推荐引擎通过实时利用多种连接,帮助公司个性化产品,内容和服务。
内容和媒体推荐,图形辅助搜索引擎,产品推荐,专业网络,社会推荐。

身份和访问管理

使用图形数据库进行身份和访问管理时,可以快速有效地跟踪用户,资产,关系和授权。
查询访问管理,资产来源,数据所有权,身份管理,互连组织,主数据,资源授权

金融反欺诈多维关联分析场景

通过图分析可以清楚地知道洗钱网络及相关嫌疑,例如对用户所使用的帐号、发生交易时的IP地址、MAC地址、手机IMEI号等进行关联分析。

5.Neo4j 环境搭建

Neo4j环境Linux下搭建

(1).切换到Linux下 到安装目录neo4j 上传安装包 或者 下载安装包
使用 ftp 工具上传neo4j-community-3.5.17.tar 到 liunx 下
或者

wget https://neo4j.com/artifact.php?name=neo4j-community-3.5.17-unix.tar.gz

(2). 解压

tar -xvf neo4j-community-3.5.17.tar

(3). 修改配置文件 neo4j.conf
vi conf/neo4j.conf
主要是修改 允许远程访问的地址 把对应的注释打开即可

dbms.connectors.default_listen_address=0.0.0.0 

(4).开放对应的访问端口 默认要开放7474 和 7687

firewall-cmd --zone=public --add-port=7474/tcp --permanent
firewall-cmd --zone=public --add-port=7687/tcp --permanent
systemctl reload firewalld

(5).启动

./bin/neo4j start

(6).使用浏览器 访问服务器上的 neo4j
http://localhost:7474
默认的账号是 neo4j 密码 neo4j 这里第一次登录的话会要求修改密码

Windows下的安装

(1).从https://neo4j.com/download-center/#community 下载最新的Neo4j Server安装文件
可以看到 neo4J 软件 exe 或 zip 格式的所有版本
(2).下载 neo4j-community-4.4.29 (zip)
(3).解压
(4).修改配置文件
dbms.connectors.default_listen_address=0.0.0.0
(5) . 通过 neo4j.bat install-service 安装neo4j服务
注意的问题 如果是4.0 以及以上版本需要jdk11
修改文件 bin/neo4j.ps1
Import-Module “neo4j的主目录\bin\Neo4j-Management.psd1”
(6).neo4j.bat启动
neo4j.bat console
(7).使用浏览器 访问服务器上的 neo4j
http://localhost:7474
默认的账号是 neo4j 密码 neo4j 这里第一次登录的话会要求修改密码

6.Neo4j数据浏览器

http:// localhost:7474/browser/
在这里插入图片描述
Neo4j数据浏览器用于执行CQL命令并查看输出输出。
这里我们需要在美元提示符处执行所有CQL命令:“$” 如

CREATE(cc:CreditCard)

在美元符号后键入命令,然后单击“执行”按钮运行命令。
它与Neo4j数据库服务器交互,检索和显示下面的结果到那个美元提示。
使用“VI视图”按钮以图形格式查看结果。 上图以“UI视图”格式显示结果。

在这里插入图片描述

导出 CSV 或者 JSON
单击“导出CSV”按钮以csv文件格式导出结果

7. Neo4j CQL简介

CQL代表Cypher查询语言。 像关系型数据库具有查询语言SQL,Neo4j使用CQL作为查询语言。

Neo4j CQL

  • 它是Neo4j图形数据库的查询语言。
  • 它是一种声明性模式匹配语言。
  • 它遵循SQL语法。
  • 它的语法是非常简单且人性化、可读的格式。

常用的Neo4j CQL命令/条款如下:
在这里插入图片描述

CREATE

CREATE (
	<node-name>:<label-name>
	[{
		<property1-name>:<property1-Value>
		........
		<propertyn-name>:<propertyn-Value>
	}]
)

语法说明:
在这里插入图片描述

举例:

CREATE (person:Person)
CREATE (person:Person {cid:1,name:"范闲",age:24,gender:0,character:"A",money:1000});
CREATE (person:Person {cid:2,name:"林婉儿",age:20,gender:1,character:"B",money:800});
CREATE (person:Person {cid:3,name:"庆帝",age:49,gender:0,character:"A",money:8900});

MATCH RETURN命令语法

MATCH
(
	<node-name>:<label-name>
)
RETURN
	<node-name>.<property1-name>,
	...
	<node-name>.<propertyn-name>

在这里插入图片描述

举例:

MATCH (person:Person) return person
MATCH (person:Person) return person.name,person.age

关系创建

  • 使用现有节点创建没有属性的关系

    MATCH (<node1-name>:<node1-label-name>),
<think>好的,我现在需要处理用户关于Neo4j的查询。首先,用户明确要求了解Neo4j介绍、功能、特点和适用场景,同时用户提供了四个引用内容,我需要参考这些引用并正确引用标识。 首先,我需要确定用户的需求。他们可能刚开始接触图数据库,想了解Neo4j的基本信息以及它与其他数据库(如MongoDB)的区别。根据引用[3],Neo4j是图形数据库,适合处理复杂关系数据,而MongoDB是文档数据库,这可以作为对比点之一。 接下来,介绍部分需要涵盖Neo4j的定义和核心概念。引用[1]提到Neo4j是强大的图数据库系统,引用[4]详细说明了节点、关系和属性的结构。我需要用这些信息构建基本介绍,并确保提到CQL作为查询语言,如引用[4]中的CQL命令。 功能方面,引用[1]和[4]提到了高效处理关系数据、CQL语言以及可视化工具。需要列举几个关键功能,比如图遍历、索引支持、事务处理等,可能还需要补充ACID特性,这是数据库的重要特点。 特点部分要突出Neo4j的优势,比如性能、灵活的数据建模、可扩展性,以及可视化工具如Neo4j Bloom(引用[2])。同时,引用[3]提到社交网络和推荐系统的应用场景,这些可以作为使用场景的例子。 使用场景需要具体化,例如社交网络、欺诈检测、推荐系统等,结合引用[3]和[4]的内容。同时,对比其他数据库(如MongoDB)能帮助用户理解适用情况,引用[3]已经做了对比,可以引用这一点。 最后,生成相关问题时要考虑用户可能的后续疑问,比如与关系型数据库的区别、CQL语法、性能优化等。确保问题覆盖用户可能深入的方向。 检查是否需要添加引用标识,每个引用部分末尾加上对应的[^1]、[^2]等。同时确保LaTeX格式正确,虽然用户的问题中可能没有数学表达式,但如果有相关内容,需要正确使用$...$或$$...$$格式。不过当前回答内容可能不需要数学公式,所以重点放在结构和引用上。 现在组织内容结构:分为基本介绍、核心功能、主要特点、适用场景、对比其他数据库,最后相关问题。确保每个部分自然引用提供的资料,并在末尾添加引用标识。</think>### Neo4j 数据库介绍 #### 一、基本介绍 Neo4j 是一种**原生图数据库**,专注于存储和处理图形结构数据。它通过节点(Node)、关系(Relationship)和属性(Property)表示数据,并以图的形式存储,特别适合处理复杂关系网络[^3]。例如,社交网络中用户之间的交互、交通网络的路径分析等场景[^1]。 #### 二、核心功能 1. **图数据建模** 支持灵活定义节点和关系,例如: - 节点:`(用户:Person {name: "Alice", age: 30})` - 关系:`(用户1)-[:FOLLOWS]->(用户2)` 通过属性(键值对)和标签(分类)增强数据表达能力[^4]。 2. **Cypher 查询语言(CQL)** Neo4j 使用专为图数据设计的查询语言 CQL,语法简洁直观。 示例:查找 Alice 的所有朋友: ```cypher MATCH (a:Person {name: "Alice"})-[:FRIEND]->(friend) RETURN friend.name ``` 3. **高性能图遍历** 基于图结构的存储引擎,可在毫秒级遍历深度关系(如 10 层关联查询)[^1]。 4. **可视化工具** 支持 Neo4j Bloom 等工具直观展示图数据,便于调试和分析[^2]。 #### 三、主要特点 | 特点 | 说明 | |---------------------|----------------------------------------------------------------------| | **ACID 事务支持** | 保证数据一致性,适用于金融、安全等关键领域 | | **可扩展性** | 支持分布式架构,可处理千亿级节点和关系[^1] | | **灵活模式** | 无需预先定义固定表结构,适应动态业务需求 | | **集成生态** | 提供 APOC 函数库、GraphQL 接口等扩展功能[^2] | #### 四、典型使用场景 1. **社交网络分析** 快速查询用户的关系链(如六度分隔理论)[^3]。 2. **推荐系统** 基于共同兴趣或行为路径生成个性化推荐(例如:电商商品推荐)。 3. **欺诈检测** 通过关联交易网络识别异常模式(如洗钱行为)。 4. **知识图谱** 构建实体间的语义关系,应用于搜索引擎或智能问答系统。 #### 五、对比其他数据库 - **MongoDB(文档数据库)**:适合存储非结构化文档,但处理多对多关系效率较低[^3]。 - **关系型数据库(如MySQL)**:需通过多表 JOIN 实现关联查询,性能随复杂度下降。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值