Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。

Neo4j因其嵌入式、高性能、轻量级等优势,越来越受到关注。

图形数据结构

在一个图中包含两种基本的数据类型:Nodes(节点) 和 Relationships(关系)。Nodes 和 Relationships 包含key/value形式的属性。Nodes通过Relationships所定义的关系相连起来,形成关系型网络结构。

网络结构图

Neo4j安装

Neo4j可以被安装成一个独立运行的服务端程序,客户端程序通过REST API进行访问。也可以嵌入式安装,即安装为编程语言的第三方类库,目前只支持Java和Python语言。

因Neo4j是用java语言开发的,所以确保将要安装的机器上已安装了jre或者jdk

安装为服务

此种安装方式简单,各平台安装过程基本一样

  1. 从http://neo4j.org/download上下载最新的版本,根据安装的平台选择适当的版本。
  2. 解压安装包,解压后运行终端,进入解压后文件夹中的bin文件夹。
  3. 在终端中运行命令完成安装

    Linux/MacOS系统 neo4j install
    Windows系统 Neo4j.bat install

  4. 在终端中运行命令开启服务

    Linux/MacOS系统 service neo4j-service start
    Windows系统 Neo4j.bat start

通过stop命令可以关闭服务,status命令查看运行状态

支持python嵌入式安装

第一步:安装Jpype

从http://sourceforge.net/projects/jpype/files/JPype/ 下载最新版本,windows有exe格式的直接安装程序,linux平台要下载源码包,解压后运行sudo python setup.py install完成安装

第二步:安装 neo4j-embedded

如果安装了python的包管理工具 pip 或者 easy_install 可直接运行

Pip install neo4j-embedded
easy_install neo4j-embedded

也可以从http://pypi.python.org/pypi/neo4j-embedded/下载相应的安装包完成安装。

Neo4j使用实例

有如下所示的用户关注关系所形成的关系网络

关系网络图

现在利用图形数据库进行数据的储存,并获得user1 的粉丝,并为user4 推荐好友

示例代码:

?
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Neo4j图形数据库示例
#
from neo4jimport GraphDatabase, INCOMING
# 创建或连接数据库
db= GraphDatabase('neodb')
# 在一个事务内完成写或读操作
with db.transaction:
    #创建用户组节点
    users= db.node()
    # 连接到参考节点,方便查找
    db.reference_node.USERS(users)
    # 为用户组建立索引,便于快速查找
    user_idx= db.node.indexes.create('users')
#创建用户节点
def create_user(name):
    with db.transaction:
        user= db.node(name=name)
        user.INSTANCE_OF(users)
        #  建立基于用户name的索引
        user_idx['name'][name]= user
    return user
 #根据用户名获得用户节点
def get_user(name):
    return user_idx['name'][name].single
#建立节点
for namein ['user1','user2','user3','user4']:
   create_user(name)
#为节点间添加关注关系(FOLLOWS)
with db.transaction:
    get_user('user2').FOLLOWS(get_user('user1'))
    get_user('user3').FOLLOWS(get_user('user1'))
    get_user('user4').FOLLOWS(get_user('user3'))
# 获得用户1的粉丝
for relationshipin get_user('user1').FOLLOWS.incoming:
    u= relationship.start
    print u['name']
#输出结果:user2,user3
#为用户4推荐好友,即该用户关注的用户所关注的用户
nid= get_user('user4').id
#设置查询语句
query= "START n=node({id}) MATCH n-[:FOLLOWS]->m-[:FOLLOWS]->fof RETURN n,m,fof"
for rowin db.query(query,id=nid):
    node= row['fof']
    print node['name']
#输出结果:user1

图形数据库Neo4j(1)----简介及使用相关推荐

  1. 图形数据库Neo4J简介

    最近我在用图形数据库来完成对一个初创项目的支持.在使用过程中觉得这种图形数据库实际上挺有意思的.因此在这里给大家做一个简单的介绍. NoSQL数据库相信大家都听说过.它们常常可以用来处理传统的关系型数 ...

  2. 图形数据库neo4j视频教程

    2019独角兽企业重金招聘Python工程师标准>>> Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中.它是一个嵌入式的.基于磁盘的.具备完全的 ...

  3. NOSQL之Neo4j:Neo4j的简介、安装、使用方法(Neo4j搭配JDK安装的图文教程)之详细攻略

    NOSQL之Neo4j:Neo4j的简介.安装.使用方法(Neo4j搭配JDK安装的图文教程)之详细攻略 目录 Neo4j的简介 Cypher语言 Neo4j之Cypher:Cypher查询语言的简介 ...

  4. NOSQL图形数据库 - Neo4j

    Neo4j入门指南 1.简介 2.特点 3.安装 4.基础操作 5.Java集成 5.1 内嵌数据库集成方式 5.2 服务器集成方式 5.3 Spring集成方式 参考文档 1.简介 Neo4j是一个 ...

  5. Neo4j 基础简介一

    Neo4j 是一个NoSQL的图形数据库 图 和 Neo4j 图论 图论起源 - 柯尼斯堡(Konigsberg)七桥问题 众所周知,图论起源于一个非常经典的问题--柯尼斯堡(Konigsberg)七 ...

  6. 图形数据库Neo4j

    前言 图表数据库是当今巨大的宏观业务趋势之一:在高度连接的数据中利用复杂和动态的关系,产生洞察力和竞争优势.无论我们想要了解客户之间的关系,电话或数据中心网络中的元素,娱乐生产商和消费者,还是基因和蛋 ...

  7. 图形数据库Neo4j基本了解

    在深入学习图形数据库之前,首先理解属性图的基本概念.一个属性图是由顶点(Vertex),边(Edge),标签(Lable),关系类型和属性(Property)组成的有向图.顶点也称作节点(Node), ...

  8. Neo4j - CQL简介

    CQL代表Cypher查询语言. 像Oracle数据库具有查询语言SQL,Neo4j具有CQL作为查询语言. Neo4j CQL - 它是Neo4j图形数据库的查询语言. 它是一种声明性模式匹配语言 ...

  9. php 可视化neo4j,开源图形数据库Neo4j使用 php开发

    先看看它的示例数据 打开 Neo4j Browser :play movie graph 写代码,然后点play执行 Cypher, the graph query language.Neo4j提供了 ...

  10. Neo4j CQL简介

    CQL CQL 代表 Cypher 查询语言.像 Orcale 数据库具有查询语言 SQL,Neo4j 具有 CQL 作为查询语言. Neo4j CQL Neo4j 图形数据库的查询语言: 一种声明性 ...

最新文章

  1. IDA Pro的patch插件 KeyPatch
  2. Flink SQL Client注册JAVA UDF完整流程
  3. hdu1068 Girls and Boys --- 最大独立集
  4. Windows消息拦截技术的应用
  5. 人工智能将为维护网络安全带来更多可能
  6. 错误:Property or field 'default' cannot be found on object of type 'com.netflix.appinfo.InstanceInfo'
  7. keil+proteus 制作计算器_设计费 | 工程设计费计算器使用指南
  8. 园林景观cad_CAD设计师含泪分享!2000多个CAD素材模板,同行都在用
  9. GAN变种介绍 - DCGAN、InfoGAN、CycleGAN、WGAN、Self-Attention GAN、BigGAN
  10. Crackme 21
  11. 深度学习与计算机视觉教程(12) | 目标检测 (两阶段,R-CNN系列)(CV通关指南·完结)
  12. dfa确定有限自动机定义_确定性有限自动机(DFA)
  13. 我奋斗了18年,不是为了和你一起喝咖啡
  14. 微信OAuth2接口40163错误怎么解决?
  15. 构件3扩大构件法的本质+W3是否等于W2 +角加速度α3是否等角加速度α2+科氏加速度诞生
  16. vue富媒体编辑器组件:vue-wangeditor的使用
  17. (精)广东工业大学《数据可视化技术》 2018实验报告
  18. 微信点餐系统——用Enum枚举来保存商品状态
  19. 为黑客打工能挣多少?月薪最高达2万美元
  20. 前程无忧助力,再次举办湖北武汉网络专场招聘会

热门文章

  1. fork的写时复制1
  2. java输入年月输出日历_java输入年份打印该年份的年历 | 学步园
  3. C# 读取XML 写入XML 读写XML
  4. C++11 static_assert 使用方法及assert 与 #error
  5. unix 网络编程全解
  6. html5 video mute按钮,How to mute an html5 video player
  7. 等比缩放公式_CVPR2019 | 旷视提出MetaSR:单一模型实现超分辨率任意缩放因子
  8. php fsockopen,php fsockopen()有什么用?
  9. c语言小球触地问题,OC语言中关于触摸事件和手势
  10. 策划通不过,不是老板的错