`

neo4j笔记

阅读更多
APOC功能
  Text and Lookup Indexes(文本和索引查找)
      提供索引查询、管理、全文图标和搜索等功能
  Utility Functions(实用函数)
      域名提取、时间和日期、数据格式转换等功能
  Graph Algorithms(图算法)
      社区检测、PageRank、中心算法等
  Spatial(空间函数)
      地理编码、位置计算、空间与时间搜索等
  Data integration(数据集成)
      JSON、JDBC、csv等格式数据加载
  Graph Refactorings(图形重构)
      节点合并、属性规范与分类等
  Virtual Nodes/Rels(虚拟节点/关系)
      提供虚拟图的创建
  Cypher Operations(Cypher操作)
      单个和多个的Cypher语句运行和脚本运行
  Triggers(触发器)
      与关系型数据库的触发器的理解方式一样

安装APOC
  两个Jar包,放到neo4j的plugins目录下
    apoc-3.4.0.3-all.jar
    mysql-connector-java-5.1.21.jar


APOC数据集成-JDBC
apoc.load.jdbc : 可以访问提供JDBC驱动程序的数据库,并执行查询。其将结果变成以一行数据为单位的数据流。然后可以使用这些行来更新或创建图形数据结构
  APOC JDBC 语法
call
apoc.load.jdbc("jdbc:mysql://{IP}:{PORT}/{DBNAME}?user={USERNAME}&password={PASSWORD}","{TABLENAME}") yield row

创建节点的语句,使用row. 调用每一行中的具体字段。

create
(b:Black{number:row.black_id,type:row.type})


Cypher Neo4j的SQL
启动neo4j
进入neo4j-community-3.4.1
./bin/neo4j start

访问地址:localhost:7474/broswer

语法讲解
match 相当于 SQL select

match
     (node)-[relationship]->(node)
where
     (node | relationship)
return
     (node | relationship)

例:
最简单的查询
match (n:Person) return n limit 10
这里的 n 相当于 SQL 中的别名 as n

带有关系的查询
match (n:Person)-[:HAS_PHONE]->(p:Phone) return n,p limit 10

带有Where 条件的查询
match (n:Person)-[:HAS_PHONE]->(p:Phone) where n.name="姓名5" return n,p limit 10

多对多关系的查询
match (n:Person)-[:HAS_PHONE]->(p:Phone) -[:CALL]->(p1:Phone) where n.name="姓名6" return n,p,p1 limit 10

利用关系查询
match p=()-[c:CALL]-() return p limit 10

利用正则查询
match (n:USERS) where n.name=~'Jack.*' return n limit 10

包含查询
match (n:USERS) where n.name contains 'J' return n limit 10


创建实体的关系
create (n:Person)-[:LOVES]->(m:Dog)
match (n:Dog) return n limit 25

创建有属性的实体的关系
create (n:Person{name:"李四"})-[:FEAR{level:1}]->(t:Tiger{type:"东北虎"})
match (n:Tiger) return n limit 25

创建孤立实体
create (n:Person{name:"王五"})
create (n:Person{name:"赵六"})

两个实体挂上关系
  查询两个实体
match (n:Person{name:"王五"}),(m:Person{name:"赵六"})

  挂上关系
match (n:Person{name:"王五"}),(m:Person{name:"赵六"}) create (n)-[k:KNOW]->(m) return k

match (n:Person{name:"王五"}),(m:Person{name:"赵六"})

merge 有则返回,没有则新增
match (n:Person{name:"王五"}),(m:Person{name:"赵六"}) merge (n)-[l:LOVE]->(m) return l

match (n:Person{name:"王五"}),(m:Person{name:"赵六"})


删除关系
match (n:Person{name:"李四"})-[f:FEAR]->(t:Tiger) delete f

删除实体
match (n:Person{name:"李四"}) delete n

同时删除实体与关系
match (n:Person)-[l:LOVES]->(d:Dog) delete n,l,d

更新实体标签
match (t:Tiger) where id(t) = 1837 set t:A return t
一个实体可以对应多个标签

更新实体的属性
match (a:A) where id(a)=1837 set a.年龄=10 return a limit 10

更新关系的属性
match (n:Phone)-[l:LOVES]-(:Person) set l.date="1991" return n,l

索引:能够提高查询速度
语法: create index on :<标签名称>(属性名称)

创建索引
create index onerson(name)

删除索引
drop index onerson(name)

创建唯一索引/约束
create constraint on (p:Person) assert (p.name) is unique
删除约束
drop constraint on (p:Person) assert (p.name) is unique


查询 姓名12 他的,三度内的朋友有哪些
match (p:Person)-[:FRIEND_OF]-(p1:Person)-[:FRIEND_OF]-(p2:Person) where p.name="姓名12" return p,p1,p2

查询姓名12 三度内有关系的人有哪些
match (p:Person)-[]-(p1:Person)-[]-(p2:Person) where p.name="姓名12" return p,p1,p2

姓名11 的通话记录中的电话有哪些
match (p:Person)-[:HAS_PHONE]->(p2:Phone)-[:CALL]-(h:Phone) where p.name="姓名11" return p,p2,h

查询姓名2到姓名10的最短路径
match (p1:Person{name:"姓名2"}),(p2:Person{name:"姓名10"}), p=shortestpath((p1)-[*..10]-(p2)) return p


查询姓名2到姓名10的所有最短路径
match (p1:Person{name:"姓名2"}),(p2:Person{name:"姓名10"}), p=allshortestpaths((p1)-[*..10]-(p2)) return p


分享到:
评论

相关推荐

    Neo4j笔记_nosql_neo4j_

    **Neo4j笔记_nosql_neo4j_** 在当今大数据时代,关系型数据库(RDBMS)已经无法满足所有需求,特别是在处理复杂网络数据和高并发读写场景时。这时,非关系型数据库(NoSQL)应运而生,其中一种非常流行的图数据库...

    neo4j学习资料汇总(各种优质博文和neo4j教程整理)

    │ neo4j笔记.docx │ neo4j错误码状态码.html │ └─01.neo4j学习博客汇总 │ index.html └─neo4j_cypher │ Cypher(神奇的WITH).html │ cypher_index.html │ Cypher查询语言--Neo4j 综合(四) - ...

    neo4j预研笔记.txt

    个人调研学习Neo4j图数据库时,记录的一些学习笔记。稍加整理后上传。内容有些杂。 个人调研学习Neo4j图数据库时,记录的一些学习笔记。稍加整理后上传。内容有些杂。

    Neo4j的学习笔记.pdf

    学习图数据库neo4j的一些笔记,查阅了相关官方文档、网络资料,还有自己使用中的一些记录,希望有用,帮助快速学习。主要是一些语法、优缺点调研、使用记录、优化调研。当然其中有一些也是直接摘抄的网络资料,未经...

    neo4j安装使用笔记.docx

    ### Neo4j安装与使用详解 #### 一、Neo4j简介 Neo4j是一款高性能的NoSQL图形数据库,它采用独特的数据模型——图形模型,而非传统的表格模型来存储和管理数据。图形模型允许开发者以直观的方式表示和处理复杂的...

    Neo4j的学习笔记完整版PDF最新版本

    Neo4j是一个用Java实现的、高性能的、NoSQL图形数据库。...《Neo4j的学习笔记》主要介绍了包括对Neo4j图形数据库的简介和其重要组成部分、内部结构的讲解,对其查询语言cypher的介绍和实例,感兴趣的可以下载学习一下

    neo4j图数据库的安装笔记

    ### neo4j图数据库的安装及基础操作指南 #### 一、neo4j图数据库简介 Neo4j是一款流行的图数据库管理系统,它采用图形模型来存储数据,利用节点、关系和属性来构建复杂的数据结构。Neo4j适用于处理高度互联的数据集...

    neo4j-enterprise-3.2.6-unix.tar.gz-back

    此外,还有一个名为“新建文本文档.txt”的文件,这可能是用户的笔记、安装指南或者一些临时的文本信息,但具体用途需要打开文件才能确定。 在3.2.6版本中,Neo4j引入了一些关键改进,包括性能提升、稳定性增强以及...

    neo4j-connector-apache-spark-notebooks:适用于Apache Spark的Neo4j Connector入门的笔记本系列

    用于Apache Spark Zeppelin笔记本的Neo4j连接器 适用于Apache Spark的Neo4j Connector入门的笔记本系列 docker-compose up 齐柏林飞艇笔记本 造访 Neo4j实例 默认情况下,用户名/密码为neo4j/zeppelin 造访

    neo4j常用操作笔记

    关系查询 match (n:Data{name:”一些数据”}) -[:包含]-&gt; (m:Data{name:”aaaa”}) return m,n 存在对象后进行 关系 match (n:Data{name:’数据’}),(m:BigData{name:’大数据’}) create (n)-[:rel]-&gt;(m) ...

    movies-java-spring-data-neo4j:使用Spring Data Neo4j的Neo4j电影示例

    笔记该项目使用Spring Data Neo4j6。仍然可以在下访问使用SDN 5 + OGM的先前版本。分支。 笔记有关具有相同数据集的Spring Data Neo4j 6的更广泛概述,可以访问分支。 上详细描述了示例项目。 该项目使用Java 11。...

    neo4j-jdbc:带有BOLT协议的Neo4j 3.x的Neo4j JDBC驱动程序

    笔记先前针对Neo4j 2.x的JDBC驱动程序已移至存储库。 作为一个图形数据库,Neo4j并不是以关系方式提供数据,并且该项目的确切目的是允许在关系范式中使用经典JDBC连接器的项目与Neo4j进行交互。 该驱动程序支持各种...

    数据库学习笔记包括:Oracle、MySQL、MongoDB、Redis,Neo4j的在完善.zip

    本压缩包中的学习笔记涵盖了五大主流数据库系统:Oracle、MySQL、MongoDB、Redis以及Neo4j,它们各自拥有独特的特性和用途,适用于不同的场景。 1. Oracle数据库: Oracle是一款关系型数据库管理系统(RDBMS),在...

    neo4j-lucene5-index:Neo4j Lucene 5集成

    笔记 如果要在现有数据库上尝试此操作,请先进行备份! 安装 使用mvn全新安装依赖项构建库:复制依赖项 从Neo4j服务器中删除neo4j-lucene-index.jar和所有lucene jar。 # build mvn clean install dependency:copy-...

    neo4j-clj:Bolt的Clojure绑定Java Neo4j驱动程序,带有Joplin支持,用于管理数据库迁移

    【描述】"neo4j-clj" 包含了对Joplin的支持,Joplin是一个开源笔记和组织工具,它可能利用这个库来实现对数据库的管理和迁移功能。这表明,除了基础的数据库操作,该库还考虑到了应用程序在实际开发中的需求,如数据...

    用于OSCON2017Neo4j推荐研讨会的Jupyternotebook_Jupyter Notebook_下载.zip

    标题中的“OSCON2017 Neo4j推荐研讨会”是指在2017年开源大会(Open Source Convention,简称OSCON)上举行的一场关于Neo4j图数据库的推荐系统研讨会。这场研讨会可能探讨了如何利用Neo4j构建高效、精准的推荐引擎。...

    DataImportNeo4j:使用 node.js 将数据导入 Neo4j

    该程序将包含图像/标签信息的 json 文件导入到图形数据库 neo4j 中。 它是用 node.js 编写的,需要包... 笔记和问题还有一个因为上面的包没有批处理支持,是用coffee脚本编写的。 。 让我们一步一步地学习如何使用它。

    狂神说-Redis完整版笔记

    【Redis完整版笔记】深入解析Redis作为NoSQL数据库的关键特性 Redis是一款高性能的Key-Value内存数据库,广泛应用于缓存、消息队列、计数器等多个场景。在NoSQL数据库的大潮中,Redis以其出色的速度和灵活性...

    基于Springboot+vue的读书笔记代码

    Neo4j是一个图形数据库,可能被用于存储和查询书籍、笔记之间的关系。在读书笔记应用中,这种关系数据库可以高效地处理书籍之间的引用、用户的阅读历史以及笔记的关联性。Spring Data Neo4j库可以方便地将Spring ...

    百科知识图谱构建笔记1

    在本笔记中,我们将探讨如何构建一个基于MongoDB和Neo4j的百科知识图谱,以及如何利用Scrapy爬虫获取数据。 首先,我们从启动数据库开始。MongoDB是一个流行的文档型数据库,适合存储非结构化或半结构化数据,如...

Global site tag (gtag.js) - Google Analytics