【neo4j】安装使用教程

【neo4j】安装使用教程

一、安装

1.0 前置条件

安装配置好jdk17及以上

注意我使用的是neo4j 5.26.10版本,匹配java17刚好

Java Archive Downloads - Java SE 17.0.12 and earlier

无脑安装即可

配置以下环境变量

1.1 安装程序

Neo4j Deployment Center - Graph Database & Analytics

下载解压即可,Windows是绿色版本

1.2 配置环境

添加neo4j的地址

二、基本使用

2.1 开启、关闭和查看运行状态

进入安装目录的bin文件夹,cmd窗口输入

 ./neo4j.bat console

关闭直接ctrl+c即可关闭

查看运行状态,cmd窗口输入 neo4j status

2.2 查看数据库

开启后进入以下网址即可查看

http://localhost:7474

2.3 导入dump文件

neo4j-admin database load --from-path="D:\develop\neo4j-community-5.26.10\dumps" --overwrite-destination=true neo4j

注意,dump文件的名称必须和数据库同名

不然会报错

三、neo4j常用命令

Neo4j 的常用命令主要分为两大类:Cypher 查询语言Neo4j 管理命令。下面我将为您详细列出并解释这些命令。

3.1 Cypher 查询语言(核心操作)

Cypher 是 Neo4j 的声明式图查询语言,用于操作和查询图数据。它的语法非常直观,旨在匹配图中的模式。

3.1.1 创建(CREATE)

用于创建节点、关系和属性。

  •   创建节点
-- 创建单个节点(无标签,无属性) CREATE (n) -- 创建带标签的节点 CREATE (n:Person) -- 创建带标签和属性的节点 CREATE (n:Person {name: 'John Doe', age: 30}) -- 创建多个节点 CREATE (a:Person {name: 'Alice'}), (b:Person {name: 'Bob'})
  • 创建关系:
-- 在两个已存在节点间创建关系(需要先找到节点) MATCH (a:Person {name: 'Alice'}), (b:Person {name: 'Bob'}) CREATE (a)-[r:KNOWS {since: 2020}]->(b) RETURN r -- 在创建节点的同时创建关系(适用于节点也不存在时) CREATE (a:Person {name: 'Alice'})-[r:LOVES {since: 2021}]->(b:Person {name: 'Bob'}) RETURN a, r, b

3.1.2 匹配(MATCH)

用于查询图中的节点和关系。通常与 `RETURN` 或 `WHERE` 等子句联用。

  • 查找所有节点:
MATCH (n) RETURN n
  • 查找特定标签的节点:
MATCH (n:Person) RETURN n
  • 根据属性查找节点:
MATCH (n:Person {name: 'Alice'}) RETURN n -- 或使用 WHERE 子句 MATCH (n:Person) WHERE n.name = 'Alice' AND n.age > 25 RETURN n
  • 查找关系:
-- 查找所有 KNOWS 关系 MATCH ()-[r:KNOWS]->() RETURN r -- 查找从 Alice 出发的 KNOWS 关系 MATCH (a:Person {name: 'Alice'})-[r:KNOWS]->(b) RETURN a, r, b

3.1.3 更新(SET, REMOVE)

用于修改节点或关系的属性或标签。

  • 设置/更新属性:
MATCH (n:Person {name: 'Alice'}) SET n.age = 31, n.city = 'Berlin' RETURN n
  • 移除属性:
MATCH (n:Person {name: 'Alice'}) REMOVE n.city RETURN n -- 或者使用 SET n.property = NULL
  • 添加标签:
MATCH (n:Person {name: 'Alice'}) SET n:Employee RETURN n
  • 移除标签:
MATCH (n:Person:Employee {name: 'Alice'}) REMOVE n:Employee RETURN n

3.1.4 删除(DELETE)

用于删除节点和关系。

警告:必须先删除关系,才能删除节点。

-- 删除一个节点(确保该节点无任何关系) MATCH (n:Person {name: 'Bob'}) DELETE n -- 删除一个节点及其所有相连的关系 MATCH (n:Person {name: 'Bob'}) DETACH DELETE n -- 删除关系 MATCH (a:Person {name: 'Alice'})-[r:KNOWS]->(b:Person {name: 'Bob'}) DELETE r

3.1.5 合并(MERGE)

“有则返回,无则创建”。它确保一个模式存在于图中。如果该模式不存在,则创建它;如果存在,则只是匹配到它。强烈建议与 ON CREATE 和 ON MATCH 一起使用。

-- 合并节点(如果不存在则创建,并设置初始属性) MERGE (n:Person {name: 'Alice'}) ON CREATE SET n.created_at = timestamp() ON MATCH SET n.last_seen = timestamp() RETURN n -- 合并路径(节点和关系) MERGE (a:Person {name: 'Alice'})-[r:KNOWS]->(b:Person {name: 'Bob'}) ON CREATE SET r.since = 2023 RETURN a, r, b

3.2 Neo4j 管理命令(在 Neo4j Browser 或 -Shell 中执行)

这些命令主要用于数据库管理、索引、约束和元数据查询。

3.2.1 约束(Constraints)

用于保证数据的完整性。

  • 创建唯一性约束:
CREATE CONSTRAINT constraint_name FOR (n:Person) REQUIRE n.email IS UNIQUE
  • 查看所有约束:
SHOW CONSTRAINTS
  • 删除约束:
DROP CONSTRAINT constraint_name

3.2.2 索引(Indexes)

用于大幅提高查询性能。

  • 创建索引:
CREATE INDEX index_name FOR (n:Person) ON (n.name)
  • 创建复合索引:
CREATE INDEX index_name FOR (n:Person) ON (n.firstName, n.lastName)
  • 查看所有索引:
SHOW INDEXES
  • 删除索引:
DROP INDEX index_name

3.2.3 信息查询(Schema & Info)

  • 查看数据库基本信息:
:sysinfo
  • 查看图数据库的结构(所有标签、关系类型、属性):
CALL db.schema.visualization()
  • 列出所有数据库:
SHOW DATABASES
  • 查看当前数据库的状态和信息:
CALL db.info()

3.2.4 用户与权限管理(企业版功能)

  • 显示所有用户:
SHOW USERS
  • 创建用户:
CREATE USER username SET PASSWORD 'password' CHANGE NOT REQUIRED SET STATUS ACTIVE
  • 更改用户密码:
ALTER USER username SET PASSWORD 'newpassword' CHANGE NOT REQUIRED

3.3 实用技巧和命令

3.3.1 清空整个数据库(谨慎使用!)

MATCH (n) DETACH DELETE n

这会删除所有节点和关系,但不会删除索引和约束。

3.3.2 计数:

-- 统计图中所有节点的数量 MATCH (n) RETURN count(n) -- 统计某个标签的节点数量 MATCH (n:Person) RETURN count(n)

3.3.3 在 Neo4j Browser 中使用命令行:

  • :help - 查看帮助
  • :play start - 打开初学指南
  • :history - 查看命令历史

希望这个列表对您有帮助!Neo4j 的 语言非常强大且易读,最好的学习方式就是在 Neo4j Browser 中实际操作。

Read more

基于深度学习的纺织品缺陷检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Django+web+训练代码+数据集)

基于深度学习的纺织品缺陷检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Django+web+训练代码+数据集)

视频演示 基于深度学习的纺织品缺陷检测系统 目录 视频演示 1. 前言 2. 项目演示 2.1 用户登录界面 2.2 主界面布局 2.3 个人信息管理 2.4 多模态检测展示 2.5 检测结果保存 2.6 多模型切换 2.7 识别历史浏览 2.8 管理员管理用户信息 2.9 管理员管理识别历史 3.模型训练核心代码 4. 技术栈 5. YOLO模型对比与识别效果解析 5.1 YOLOv5/YOLOv8/YOLOv11/YOLOv12模型对比 5.2 数据集分析

PyWebIO表单进阶之路:从入门到上线只需这6个关键步骤

第一章:PyWebIO 表单快速构建 PyWebIO 是一个轻量级 Python 库,允许开发者无需前端知识即可通过纯 Python 代码构建交互式 Web 界面。特别适用于快速搭建数据采集表单、参数配置页面或简易管理后台,极大提升原型开发效率。 基础表单元素使用 PyWebIO 提供了多种内置函数来创建表单控件,如文本输入、下拉选择、复选框等。所有输入均可通过 input() 系列函数直接获取值。 # 示例:创建包含姓名、年龄和兴趣的表单 from pywebio.input import input, select, checkbox from pywebio.output import put_text name = input("请输入您的姓名:") age = input("请输入您的年龄:"

Web CNC控制工具零基础配置指南:从安装到多场景应用

Web CNC控制工具零基础配置指南:从安装到多场景应用 【免费下载链接】cncjsA web-based interface for CNC milling controller running Grbl, Marlin, Smoothieware, or TinyG. 项目地址: https://gitcode.com/gh_mirrors/cn/cncjs CNCjs作为一款开源CNC控制器,提供了强大的Web界面操控能力,支持Grbl、Marlin等多种控制系统,帮助用户轻松实现CNC设备的远程管理与精准控制。本文将从核心功能解析、场景化部署到进阶应用拓展,全方位带您掌握这款轻量化Web CNC解决方案。 一、核心功能解析:重新认识CNCjs的强大之处 1.1 多控制器兼容系统:如何解决不同CNC设备的适配难题? CNCjs实现了与主流数控系统的深度整合,包括Grbl、Marlin、Smoothieware和TinyG控制器。这种兼容性架构允许用户在同一界面下管理不同品牌的CNC设备,无需为每种控制器单独配置软件环境。 1.2 3D工具路径可视化:

ASP.NET Core 10中的Blazor WebAssembly性能优化实践

ASP.NET Core 10中的Blazor WebAssembly性能优化实践 前言 Blazor WebAssembly作为一种将.NET应用带到浏览器端的技术,在近年来得到了广泛的关注和应用。然而,随着应用规模的增大,性能问题逐渐凸显。在ASP.NET Core 10中,有一些新的特性和方法可以帮助我们更好地优化Blazor WebAssembly应用的性能。 原理 Blazor WebAssembly应用的性能瓶颈主要在于下载大小、初始加载时间以及运行时的性能。在ASP.NET Core 10中,通过以下原理来优化性能: 1. 代码压缩与打包优化:采用更高效的压缩算法,减小应用程序的下载体积。 2. 懒加载:对于一些不常用的组件或功能,采用懒加载的方式,只在需要时才加载相关代码。 3. 运行时优化:改进了JIT编译在浏览器端的性能,提高代码执行效率。 实战 1. 首先创建一个简单的Blazor WebAssembly项目: // 创建Blazor WebAssembly项目 dotnet new blazorwasm