‹ 返回笔记 Esc·

Neo4j 问题与修复

数据库结构简介 Neo4j 自 4.0 版本开始引入了多数据库支持,但社区版不支持,每个数据库可以独立存储和查询数据。 neo4j 数据库: 默认创建的主数据库,通常用作应用程序的主存储。 syste…

数据库结构简介

Neo4j 自 4.0 版本开始引入了多数据库支持,但社区版不支持,每个数据库可以独立存储和查询数据。

  • neo4j** 数据库**: 默认创建的主数据库,通常用作应用程序的主存储。
  • system** 数据库**: 专门用于存储数据库配置、用户管理和权限控制等元信息。不能用于存储业务数据。

APOC

APOC 是一个非常强大的工具集,极大地扩展了 Neo4j 的功能,帮助用户进行复杂的数据操作和分析。

  1. 数据导入和导出

APOC 提供了多种方法来从不同的格式(如 CSV、JSON、XML 等)导入和导出数据。这使得数据迁移和整合变得更加容易。

  1. 图形算法

APOC 包含了许多图形算法,如最短路径、社群检测和中心性度量等,帮助用户在图数据库中进行复杂的图分析。

  1. 数据转换和清洗

通过 APOC,可以轻松地对数据进行转换、过滤和清洗,以适应不同的数据模型和查询需求。

  1. 图的模式和元数据操作

APOC 提供了对图模式和元数据的访问,能够获取节点和关系的统计信息,帮助用户理解数据的结构。

  1. 异步过程

APOC 支持异步执行,使得长时间运行的操作不会阻塞其他查询。

  1. 其他实用功能

APOC 还提供了一些实用功能,例如时间和日期处理、字符串操作、JSON 解析等。


Bolt 协议

  • 高效性: Bolt 是 Neo4j 的原生二进制协议,专为图数据库优化。它在数据传输上更加高效,可以在客户端和服务器之间进行更快的数据交换。
  • 性能: 由于使用二进制传输,Bolt 协议通常比 HTTP 更快,尤其在处理大规模图数据时,性能差异更为明显。
  • 功能支持: Bolt 协议支持更复杂的特性,例如事务、图算法和 APOC 过程等。某些功能在 HTTP 上可能不完全支持。
  • 持久连接: Bolt 允许在一个连接中进行多次请求,可以更好地管理连接状态。

APOC 插件确认是否安装成功

1CALL apoc.help("apoc")
2RETURN apoc.version()

APOC 插件 Docker 手动安装

1// 将 APOC JAR 文件复制到容器中
2docker cp ~/Downloads/apoc-5.22.0-extended.jar neo4j:/var/lib/neo4j/plugins/
3// 配置 Neo4j 以允许 APOC
4docker exec -it neo4j /bin/bash
5echo "dbms.security.procedures.unrestricted=apoc.*" >> /var/lib/neo4j/conf/neo4j.conf
6// 重启 Neo4j 容器
7docker restart neo4j
8
9// 验证 APOC 是否安装成功
10CALL apoc.help("apoc")
11RETURN apoc.version()

APOC 导入导出配置

进入容器

1docker exec -it neo4j bash

确保配置目录存在

1mkdir -p /var/lib/neo4j/conf

写入 apoc.conf 文件(会覆盖原文件内容)

1echo 'apoc.export.file.enabled=true' > /var/lib/neo4j/conf/apoc.conf
2echo 'apoc.import.file.enabled=true' >> /var/lib/neo4j/conf/apoc.conf
3echo 'apoc.import.file.use_neo4j_config=true' >> /var/lib/neo4j/conf/apoc.conf

检查写入是否成功

1cat /var/lib/neo4j/conf/apoc.conf

输出应如下:

1apoc.export.file.enabled=true
2apoc.import.file.enabled=true
3apoc.import.file.use_neo4j_config=true

重启容器并验证配置

1docker restart neo4j