Neo4j安装与使用

准备工作

官网下载neo4j desktop

  • community版本下载
    image
  • desktop下载
    image

我这里下载的是1.63版本,因为我使用发现2.0版本安装后,没有找到自定义数据库存储路径的设置,因此换成了1.63版本,这个版本支持自定义安装路径和数据存储路径

启动desktop

记录一下使用过程中遇到的问题:

  1. 无法正常启动,双击桌面图标后无响应
    查看C:\Users\MSI\.Neo4jDesktop\log.log日志后发现报错
    image
    百度一番后,是因为Neo4j进行了区域限制,无法直接使用国内网络启动
    因此采用了魔法,完成首次启动,首次启动成功后,后续无需再使用魔法工具

  2. 在使用python查询图库数据时报错
    因为是第一次使用neo4j图库,不甚了解使用方式,还没了解到对于复杂的图库查询,是需要安装另外的插件的,如APOC,根据版本号,可以从github官网下载apoc插件,需要注意的是,apoc插件的版本,需要和neo4j数据库的版本一一对应。

  • python运行报错的内容
    image

  • 如果不知道自己desktop安装的是哪个版本的数据库,可以查看:
    image

  • 然后在apoc中找到对应的版本进行下载
    image
    这里看网上一些博主说的APOC是有coreall版本的区分,目前看我所用的这个5.24.0没有all版本, 就仅下载core版本使用

  • 下载后放入数据库实例的plugin中
    image
    image

  • 修改实例配置,开启APOC认证
    image
    我这里在配置allowlist的时候,原本是根据python中报错的apco.coll的异常来开启的,但是没想到开了之后还是会报错,因此就直接开启了全部的认证限制apco.*, 重启实例后,可正常使用

初步使用

🧭 首先:选择数据库
默认安装后,你可能在系统数据库 "system" 或默认数据库 "neo4j" 中。Neo4j 4.x 及以上版本支持多数据库。

  • 使用 :USE system 切换到系统数据库来查看数据库列表。
  • 使用 :USE neo4j 或你创建的其他数据库名来切换到你想要探索的数据库。

🗂️ 查看数据库中的内容

你可以通过以下语句来查看数据库中的节点、关系等信息。为了更清晰地概览,我用一个表格汇总了常用的探查语句:

查询目的 Cypher 语句 说明
查看所有节点和关系 MATCH (n) RETURN n LIMIT 25 快速查看图中的所有节点和关系,LIMIT 用于限制返回数量,防止数据过多。
统计节点和关系的数量 MATCH (n) RETURN count(n) AS node_count;
MATCH ()-[r]->() RETURN count(r) AS relationship_count;
分别统计数据库中节点的总数和关系的总数。
列出所有节点标签 MATCH (n) RETURN DISTINCT labels(n) AS labels, count(*) AS count ORDER BY count DESC; 查看数据库中有哪些类型的节点(标签),以及每种标签的数量。
列出所有关系类型 MATCH ()-[r]->() RETURN DISTINCT type(r) AS relationship_type, count(*) AS count ORDER BY count DESC; 查看数据库中有哪些类型的关系,以及每种关系的数量。
查看特定标签节点的属性样例 MATCH (n:LabelName) RETURN keys(n) AS property_keys, properties(n) AS sample_properties LIMIT 1; LabelName 替换为实际标签名(如 Movie),查看此类节点的属性和样例数据。
查看特定关系类型的信息 MATCH ()-[r:REL_TYPE]->() RETURN type(r), properties(r) AS sample_properties LIMIT 1; REL_TYPE 替换为实际关系类型(如 ACTED_IN),查看此关系的属性和样例数据。
查看数据库模式(元数据) CALL db.schema.visualization()
CALL apoc.meta.graph() (如果安装了 APOC 库)
以可视化的方式返回当前数据库的结构,包括存在的节点标签和关系类型,非常直观。

💡 探查建议

  • “统计节点和关系的数量”“列出所有节点标签” 开始,对数据规模和组织方式有个整体印象。
  • 如果数据库中有数据(例如 Neo4j 自带的 :play movie-graph 示例数据),你可以尝试运行这些查询。如果完全是空的,这些查询将返回空结果。
  • 使用 LIMIT 子句(如 LIMIT 50)在初始探索时限制返回结果的数量,是个好习惯,能避免意外加载过多数据。
  • 如果查询返回了数据,注意观察节点的标签属性以及关系的类型方向
posted @ 2025-09-23 09:26  PyAj  阅读(197)  评论(0)    收藏  举报