Apache Zeppelin 的 Neo4j 解释器
概述
Neo4j 是一个原生图数据库,设计用于从底层到顶层存储和处理图。
支持的版本
Neo4j 解释器通过官方的 Neo4j Java 驱动程序 支持自 v3 以来的所有 Neo4j 版本。

配置
| 属性 | 默认值 | 描述 |
|---|---|---|
| neo4j.url | bolt://localhost:7687 | Neo4j的BOLT URL。 |
| neo4j.database | neo4j 目标数据库,如果为空则使用默认数据库。 | |
| neo4j.multi.statement | true | 启用多语句管理,如果为true,则计算由分号分隔的多个查询。 |
| neo4j.auth.type | BASIC | Neo4j的认证类型(NONE, BASIC)。 |
| neo4j.auth.user | neo4j | Neo4j 用户名。 |
| neo4j.auth.password | neo4j | Neo4j 用户密码。 |
| neo4j.max.concurrency | 50 | 从Zeppelin到Neo4j服务器的最大并发调用。 |
启用Neo4j解释器
在笔记本中,要启用Neo4j解释器,请点击齿轮图标并选择Neo4j。
使用Neo4j解释器
在一个段落中,使用 %neo4j 来选择 Neo4j 解释器,然后输入 Cypher 命令。
有关 Cypher 命令的列表,请参考官方的 Cyper Refcard
%neo4j
//Sample the TrumpWorld dataset
WITH
'https://docs.google.com/spreadsheets/u/1/d/1Z5Vo5pbvxKJ5XpfALZXvCzW26Cl4we3OaN73K9Ae5Ss/export?format=csv&gid=1996904412' AS url
LOAD CSV WITH HEADERS FROM url AS row
RETURN row.`Entity A`, row.`Entity A Type`, row.`Entity B`, row.`Entity B Type`, row.Connection, row.`Source(s)`
LIMIT 10
Neo4j 解释器利用 Network 显示系统,允许直接从段落中可视化它们。
编写您的Cypher查询并导航您的图
这个查询:
%neo4j
MATCH (vp:Person {name:"VLADIMIR PUTIN"}), (dt:Person {name:"DONALD J. TRUMP"})
MATCH path = allShortestPaths( (vp)-[*]-(dt) )
RETURN path
产生以下结果_

应用Zeppelin动态表单
您可以在查询中利用Zeppelin 动态表单。这个查询:
%neo4j
MATCH (o:Organization)-[r]-()
RETURN o.name, count(*), collect(distinct type(r)) AS types
ORDER BY count(*) DESC
LIMIT ${Show top=10}
产生以下结果:
