月度归档:2018年10月

Neo4j使用APOC导出cypher语句

我们知道,neo4j community版本不支持把数据库导出成cypher语句进行增量更新,也就是所谓的Hot Backup,只能整库dump/load停机冷备份,这样不便于不同数据库之间融合。一个解决办法是,根据图谱模型,自己写一个脚本生成cypher语句,这样比较麻烦;另一个是使用第三方工具APOC导出成cypher语句。具体步骤如下:

安装APOC

  • 下载

    前往https://github.com/neo4j-contrib/neo4j-apoc-procedures/releases/3.4.0.3 下载 apoc-3.4.0.3-all.jar

  • 安装

    apoc-3.4.0.3-all.jar放到neo4j安装路径的plugins目录下,即 $NEO4J_HOME/plugins/。如果没有可执行权限的话(一般是有的),还需要如下命令:

  • 修改配置

    neo4j.conf文件中添加以下配置:

  • 重启neo4j

    [crayon-64[……]

    继续阅读

Neo4j如何表示带权重的关系

问题描述

我们知道图数据库可以用来表示节点之间的关系,大多数情况下,这个功能就足够使用了。但有时候我们希望知道这些关系的权重是怎样的,也就是说我们需要一个带权重的图(weighted graph)。比如,我们以上海周边城市图谱为例。先用如下cypher语句创建节点和关系:
CREATE (Shanghai:City {name:'上海'})
CREATE (Suzhou:City {name:'苏州'})
CREATE (Wuxi:City {name:'无锡'})
CREATE (Nanjing:City {name:'南京'})
CREATE (Ningbo:City {name:'宁波'})
CREATE (Shanghai)-[:Neighbor]->(Suzhou)
CREATE (Shanghai)-[:Neighbor]->(Wuxi)
CREATE (Shanghai)-[:Neighbor]->(Nanjing)
CREATE (Shanghai)-[:Neighbor]->(Ningbo)

可视化如下:
Imgur

解决方案

方法其实很简单:只要在关系[……]

继续阅读