1.3 环境搭建与第一条 Cypher:把沙盘跑起来


文档摘要

1.3 环境搭建与第一条 Cypher 本节摘要:本节完成三件事:安装 Neo4j 社区版并启动、认识 Browser 这个最常用的交互入口、导入 Movie 示例图并跑通第一条 MATCH 查询。全程给出命令与预期输出,遇到端口占用、密码初始化失败等高频坑附排查方案。读完你将拥有全册共用的练习沙盘。 模型讲完就该上手了。本节节奏很具体:装、开、连、导、查,五步走完,后面六章的所有查询都在这个沙盘上演练。 安装与启动 社区版从官网下载页获取,Windows 用安装包,Linux/macOS 推荐直接解压发行包或用 Docker。

1.3 环境搭建与第一条 Cypher

本节摘要:本节完成三件事:安装 Neo4j 社区版并启动、认识 Browser 这个最常用的交互入口、导入 Movie 示例图并跑通第一条 MATCH 查询。全程给出命令与预期输出,遇到端口占用、密码初始化失败等高频坑附排查方案。读完你将拥有全册共用的练习沙盘。

模型讲完就该上手了。本节节奏很具体:装、开、连、导、查,五步走完,后面六章的所有查询都在这个沙盘上演练。

安装与启动

社区版从官网下载页获取,Windows 用安装包,Linux/macOS 推荐直接解压发行包或用 Docker。以发行包为例:

# Linux / macOS:解压后进入目录启动(前台运行,便于观察日志) tar -xf neo4j-community-5.x.x-unix.tar.gz cd neo4j-community-5.x.x ./bin/neo4j start

预期输出类似:

Starting Neo4j. Started neo4j (pid 23107). It is available at http://localhost:7474 There may be a short delay until the server is ready.

Docker 用户一条命令等效:

# 数据卷挂到本地目录,容器重建后图不丢 docker run -d --name neo4j-lab ^ -p 7474:7474 -p 7687:7687 ^ -v %cd%/neo4j-data:/data ^ neo4j:5

两个端口要分开记7474 是 Browser 的 HTTP 端口,7687 是 Bolt 协议端口。第 4 章驱动程序连的是 7687,浏览器访问的是 7474,防火墙只开其中一个都会让你在某个环节卡住。

首次启动会要求改默认密码。初始账号是 neo4j,第一次登录 Browser 时会弹窗强制设置新密码——设一个你记得住的,全册统一用它。

Browser:你的驾驶舱

浏览器打开本机 7474 端口,就是 Neo4j Browser。界面中央的命令输入框,上半屏显示查询结果(表格或图形),左侧栏有收藏与文档入口。三个日常动作:输入 Cypher 回车执行;点击结果图里的节点可以展开它的关系;结果区可在 graph、table、text 三种视图间切换。

把 Movie 示例图装进来只需在输入框执行:

// 官方示例数据:几十个演员、导演与电影 :play movie-graph

按引导页点到最后一步,它会替你执行一段 CREATE。验证装载成功:

MATCH (n) RETURN count(n) AS nodes
nodes ----- 38

第一条漫游查询

一切就绪。从汤姆·汉克斯出发走第一程:

// 查他参演的电影:锚定起点,穿越 ACTED_IN,取回电影标题 MATCH (p:Person {name: 'Tom Hanks'})-[:ACTED_IN]->(m:Movie) RETURN m.title
m.title ------- "Forrest Gump" "The Matrix" -- 数据集不同结果略有差异 "Apollo 13"

在 Browser 的 graph 视图里,你会看到节点与关系连成的小图——这就是本册反复出现的"漫游"在视觉上的样子。再加一程,看看谁和他共同出演:

// 两程漫游:他参演的电影里,还有谁也参演了 MATCH (p:Person {name: 'Tom Hanks'})-[:ACTED_IN]->(m:Movie) <-[:ACTED_IN]-(coactor:Person) WHERE coactor <> p RETURN coactor.name, collect(m.title) AS 共同出演

collect() 是聚合函数,把多行收成一个列表——现在混个脸熟,第 2 章会正式讲。

命令行入口:cypher-shell

Browser 之外还有更轻的入口。发行包自带命令行客户端,适合远程服务器与脚本场景:

# 用 Bolt 端口连接,-p 传密码 bin/cypher-shell -a neo4j@localhost:7687 -u neo4j -p yourpassword
Connected to Neo4j using Bolt protocol. neo4j@neo4j> MATCH (n) RETURN count(n); +---------+ | count(n)| +---------+ | 38 | +---------+

日常探索用 Browser(可视化直觉强),写脚本、跑回归用 cypher-shell(可管道可无人值守)。两个工具第 4 章还有更完整的对比。

常见坑排查

启动失败、日志报端口被占:7474 或 7687 被其他进程(常见是另一个 Neo4j 实例或 Java 进程)占用。改配置文件中的端口号,或结束占用进程。

Browser 打不开但进程在跑:等半分钟再刷新——就绪检测有延迟;仍不行看日志目录里的服务日志,多数是内存参数超出机器物理内存。

cypher-shell 连接被拒:确认连的是 7687 而不是 7474;远程机器还要确认配置里监听地址没有锁在仅本机。

配置速览:两个先调对的参数

安装目录的配置文件里,两项参数决定这台实例的体验:

# 页缓存:装得下图数据就设成数据总量,装不下按热点估 server.memory.pagecache.size=1G # 堆内存:服务查询执行,桌面练习 512M 足够 server.memory.heap.max_size=512M

社区版与生产版的参数体系一致,现在调对习惯,3.4 节的容量规划就是同一套语言的延续。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U