neo4j desktop2 安装与使用

1. Neo4j Desktop 2 简介

1.1 Neo4j Desktop 2 的核心功能与优势

Neo4j Desktop 2 是 Neo4j 官方推出的图形化数据库管理工具,专为开发者和数据科学家设计。

其主要优势包括:

一体化开发环境:集成了数据库实例管理、查询编辑、数据可视化和扩展管理

本地开发友好:支持在本地机器上快速创建和测试图数据库实例

多版本管理:可同时管理多个 Neo4j 数据库版本

插件生态系统:内置插件市场,轻松安装常用扩展 

项目管理:以项目为单位组织数据库、查询和配置  

1.2 适用场景

图数据库开发:为应用程序开发提供本地图数据库环境

本地测试:在部署到生产环境前进行数据模型测试和查询验证

项目管理:管理多个图数据库项目,保持环境隔离

教育与学习:学习 Cypher 查询语言和图数据库概念

2.安装neo4j desktop2

需要装JAVA (注意桌面版和社区版对Java都有要求)

桌面版版本不能过低,建议SE14以上,不需要配置环境和路径;社区版版本不能太高,SE15

下,需要自己手动配置环境和路径。可以去java官网下载历史版本

历史版本下载需要官网注册,注册成功后,可以免费下载。

方法一与方法二下载的结果安装包一样,但是方法一只能下载最新版2.0.5

方法一、通过https://neo4j.com/download下载或者使用网页版

点击桌面版下载

跳转到以下页面

填写信息就会自动下载安装包

方法二、通过https://neo4j.com/下载

点击后跳转到以下页面

往下划找到以下页面即可,可以按自己的需求安装在相应的操作系统。可以下载最新版本2.0.5,也可以下载旧版本1.6,网络上1.6版本教程较多,使用方法也比较简单,本人下载的是2.0.5,网络上教程有点少,所以在使用时也有踩一些坑,比例说不知道怎么创建项目,不知道如何运行项目创建知识图谱,不知道用户名是Instance name还是database user。

3.创建并管理本地图数据库

3.1新建数据库实例:

点击创建一个项目

填写项目名称与密码后点击创建,这里可以看到dstabase user默认为neo4j。

3.2启动与停止数据库:

这里可以看到项目默认为关闭的(STOPPED),点击①标注的即可运行。

此时会弹出一个弹窗,关闭弹窗项目就会结束运行,需要启动时可以先隐藏。

此时可以点开database中查看数据库,默认只有neo4j一个,可以点击create database创建多个知识图谱。然后点击connect可以查看query和explore。

4.构造知识图谱的方法

4.1在查询编辑器中输入代码

4.1.1基础操作

(1)创建节点
// 创建人物节点
CREATE (p:Person {name: 'Alice', age: 30, occupation: 'Engineer'})

// 创建多个节点
CREATE 
  (p1:Person {name: 'Bob', age: 25}),
  (p2:Person {name: 'Charlie', age: 35}),
  (c:Company {name: 'Tech Corp', industry: 'Technology'})
(2)创建关系
// 先匹配节点,然后创建关系
MATCH 
  (a:Person {name: 'Alice'}),
  (b:Person {name: 'Bob'})
CREATE (a)-[:FRIENDS_WITH {since: '2023-01-01'}]->(b)

// 创建节点和关系同时进行
CREATE 
  (alice:Person {name: 'Alice'})-[:WORKS_AT {position: 'Developer'}]->(company:Company {name: 'Neo4j Inc'})
(3)添加/更新属性
// 添加属性
MATCH (p:Person {name: 'Alice'})
SET p.email = '[email protected]'

// 更新多个属性
MATCH (p:Person {name: 'Bob'})
SET p.age = 26, p.department = 'Engineering'

// 添加标签
MATCH (p:Person {name: 'Charlie'})
SET p:Employee:Manager

4.1.2查询操作

(1)MATCH 基础查询
// 查询所有人物
MATCH (p:Person) 
RETURN p

// 查询特定属性
MATCH (p:Person) 
WHERE p.age > 25 
RETURN p.name, p.age

// 查询关系和路径
MATCH (p1:Person)-[r:FRIENDS_WITH]->(p2:Person)
RETURN p1.name, p2.name, r.since
(2)复杂查询示例
// 查找朋友的朋友
MATCH (p:Person {name: 'Alice'})-[:FRIENDS_WITH*2]->(friendOfFriend)
RETURN friendOfFriend.name

// 聚合查询
MATCH (p:Person)
RETURN p.occupation, COUNT(*) as count, AVG(p.age) as avgAge

// 路径查询
MATCH path = (start:Person)-[:FRIENDS_WITH|WORKS_AT*1..3]->(end)
WHERE start.name = 'Alice'
RETURN path

4.2通过import导入csv等文件导入节点

4.3使用python代码

使用代码连接neo4j

踩坑点:

“neo4j://127.0.0.1:7687”是项目上的url,auth=("neo4j","密码")这是用户名database user与创建项目时设置的密码。

4.4在网站上输入http://localhost:7474,可以连接neo4j网页版,输入密码即可。

如果习惯使用旧版本,点击红色即可使用旧版本的neo4j。

以下为旧版本页面

然后通过右键可以使用expand查看相关节点。

Read more

Java Web 公交线路查询系统系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】

Java Web 公交线路查询系统系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】

摘要 随着城市化进程的加速,公共交通系统的复杂性和规模不断扩大,传统的公交线路查询方式已难以满足用户高效、精准的出行需求。公交线路查询系统的开发旨在解决这一问题,通过信息化手段提升公交出行的便捷性和智能化水平。该系统整合了公交线路、站点、换乘等关键信息,为用户提供实时查询、最优路径推荐等功能,同时优化公交资源管理效率。关键词:公交线路查询、智能化出行、信息化管理、SpringBoot、Vue3。 本系统采用前后端分离架构,后端基于SpringBoot2框架,结合MyBatis-Plus实现高效数据持久化操作,MySQL8.0作为数据库存储公交线路、站点及用户信息。前端使用Vue3构建响应式用户界面,提供线路查询、换乘推荐、站点导航等功能。系统支持多条件筛选和动态路径规划,确保用户能够快速获取最优出行方案。关键词:SpringBoot2、Vue3、MyBatis-Plus、MySQL8.0、路径规划。 数据表 公交线路数据表 公交线路数据表用于存储公交线路的基本信息,包括线路名称、运营方向、首末班时间等属性。线路编号是该表的主键,用于唯一标识每条线路。结构表如表3-1所示。

轻松搭建个人WebDAV文件服务器:小白也能快速上手

轻松搭建个人WebDAV文件服务器:小白也能快速上手 【免费下载链接】webdavSimple Go WebDAV server. 项目地址: https://gitcode.com/gh_mirrors/we/webdav 还在为多设备间文件同步而烦恼吗?想要拥有一个安全可靠的文件共享平台吗?这个基于Go语言开发的WebDAV服务器正是你需要的解决方案。它简单易用、功能强大,让你轻松搭建专属的文件管理服务。 🎯 快速上手:三种部署方式任你选 方式一:一键安装(推荐新手) # 使用Homebrew安装 brew install webdav # 使用Go工具链安装 go install github.com/hacdias/webdav/v5@latest 方式二:Docker容器化部署 docker run -p 6060:6060 -v $(pwd)/data:/data

微信 H5 缓存控制:后端重定向 & 前端强制刷新

在 Web 开发中,缓存是一把双刃剑。对于静态资源,它能极大提升加载速度;但对于业务逻辑频繁变动的 H5 页面(如支付、订单页),缓存往往会导致用户看到过期的数据或界面。最近在维护一个 uni-app 项目时,遇到了一段关于 H5 缓存控制的逻辑,引发了我对于“后端重定向加时间戳”和“前端 JS 加时间戳”这两种方案的思考。虽然两者的最终目的一致,但在 Hash 模式下,它们的实现原理和效果有着本质的区别。 一、 问题背景 在应用启动的生命周期中,通常会有这样一段逻辑:当用户访问特定的关键页面(如支付、订单页)时,如果当前 URL 中缺少时间戳参数,前端会自动解析 URL,追加当前时间戳,并强制页面刷新。 这就引出了一个问题:为什么不直接在后端重定向时加时间戳?这两种方式有什么区别? 二、 核心区别:

AI 时代,前端逆向的门槛已经低到离谱 — 以 Upwork 为例

我用 AI 逆向 Upwork 消息系统,2小时搞定数据层开发 前言 作为 Upwork 自由职业者,我一直觉得它的消息管理界面信息量太大,不够直观。我想做一个 Chrome 插件来简化消息管理,核心需求很简单:一眼看出哪些对话需要我回复,哪些在等对方。 传统做法是下载混淆后的 JS 文件慢慢分析,但这次我决定换个思路——全程和 AI 配合,看看能多快搞定。 结果远超预期。从零开始到完全摸清 API、认证方式、数据结构,总共不到 2 小时。 第一步:摸清技术栈(5分钟) 打开 Upwork 消息页面,F12 看 Sources 面板,从加载的 JS 文件名就能判断出技术栈: ThunderNuxt/rooms.fdb6ff58.