笔记-Neo4j

本科学习的是关系数据库,而Neo4j是图数据库,直接存储图的Node和Edge及其属性。

安装

在window上安装Neo4j可以参考博文Neo4j的安装和启动

不过其中Java安装教程似乎不是很好,可以参考博文JDK下载与安装教程

将Neo4j设置为服务可以参考博文Neo4j 第一篇:在Windows环境中安装Neo4j的第四章,这样就不需要每次启动了。

不过,我使用Neo4j Desktop的浏览器连接数据库的时候,修改默认密码始终失败,,,结果用chrome连接就OK了,玄学,,

CQL的使用

使用原生的命令操纵Neo4j可以参考Neo4j图数据库从入门到精通

python的py2neo可以操纵Neo4j,参考python使用py2neo操作Neo4jpy2neo 使用教程,另外附上我的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
from py2neo import Graph, Node, Relationship, Subgraph
graph = Graph("http://localhost:7474", username="neo4j", password='*****')
graph.delete_all()


nodes = dict()
for node in data.get_nodes():
# Node的第一个属性是其label,具有相同label的Node在Neo4j自带的可视化工具中样式相同
new_node = Node('character')
new_node['name'] = node.name
new_node['gender'] = node.gender
new_node['age'] = node.age
nodes[node.name] = new_node

relations = list()
for relation in data.get_relations():
l_node = nodes[relation.l_node]
r_node = nodes[relation.r_node]
# eo4j自带的可视化工具默认显示Relation的category
new_relation = Relationship(l_node, relation.category, r_node)
new_relation['when'] = relation.when
new_relation['why'] = relation.why
relations.append(new_relation)

s = Subgraph(relationships=relations) # 用list建图的方法
graph.create(s)

Neo4j自带的可视化工具的使用

自带的可视化工具可以通过GUI手动调节Node的颜色、大小、Caption,参见Neo4j web控制台 节点 上显示指定属性值 ,自定义颜色,自定义大小

此外,更优雅的方式是使用图表样式表(GRASS),和网页中的CSS样式表十分相近。在Neo4j自带命令行中输入:style就可以查看当前的样式表,也可以如下图所示加载自己编写的样式表。

style sheet grass

样式表中可以设置的项目,除了上图还可以参考Edit or Create Graph Style Sheets for WebAdmin。注意,可以根据不同的label设置不同的样式。

第三方可视化工具的使用