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 on
erson(name)
删除索引
drop index on
erson(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_** 在当今大数据时代,关系型数据库(RDBMS)已经无法满足所有需求,特别是在处理复杂网络数据和高并发读写场景时。这时,非关系型数据库(NoSQL)应运而生,其中一种非常流行的图数据库...
│ neo4j笔记.docx │ neo4j错误码状态码.html │ └─01.neo4j学习博客汇总 │ index.html └─neo4j_cypher │ Cypher(神奇的WITH).html │ cypher_index.html │ Cypher查询语言--Neo4j 综合(四) - ...
个人调研学习Neo4j图数据库时,记录的一些学习笔记。稍加整理后上传。内容有些杂。 个人调研学习Neo4j图数据库时,记录的一些学习笔记。稍加整理后上传。内容有些杂。
学习图数据库neo4j的一些笔记,查阅了相关官方文档、网络资料,还有自己使用中的一些记录,希望有用,帮助快速学习。主要是一些语法、优缺点调研、使用记录、优化调研。当然其中有一些也是直接摘抄的网络资料,未经...
### Neo4j安装与使用详解 #### 一、Neo4j简介 Neo4j是一款高性能的NoSQL图形数据库,它采用独特的数据模型——图形模型,而非传统的表格模型来存储和管理数据。图形模型允许开发者以直观的方式表示和处理复杂的...
Neo4j是一个用Java实现的、高性能的、NoSQL图形数据库。...《Neo4j的学习笔记》主要介绍了包括对Neo4j图形数据库的简介和其重要组成部分、内部结构的讲解,对其查询语言cypher的介绍和实例,感兴趣的可以下载学习一下
### neo4j图数据库的安装及基础操作指南 #### 一、neo4j图数据库简介 Neo4j是一款流行的图数据库管理系统,它采用图形模型来存储数据,利用节点、关系和属性来构建复杂的数据结构。Neo4j适用于处理高度互联的数据集...
此外,还有一个名为“新建文本文档.txt”的文件,这可能是用户的笔记、安装指南或者一些临时的文本信息,但具体用途需要打开文件才能确定。 在3.2.6版本中,Neo4j引入了一些关键改进,包括性能提升、稳定性增强以及...
用于Apache Spark Zeppelin笔记本的Neo4j连接器 适用于Apache Spark的Neo4j Connector入门的笔记本系列 docker-compose up 齐柏林飞艇笔记本 造访 Neo4j实例 默认情况下,用户名/密码为neo4j/zeppelin 造访
关系查询 match (n:Data{name:”一些数据”}) -[:包含]-> (m:Data{name:”aaaa”}) return m,n 存在对象后进行 关系 match (n:Data{name:’数据’}),(m:BigData{name:’大数据’}) create (n)-[:rel]->(m) ...
笔记该项目使用Spring Data Neo4j6。仍然可以在下访问使用SDN 5 + OGM的先前版本。分支。 笔记有关具有相同数据集的Spring Data Neo4j 6的更广泛概述,可以访问分支。 上详细描述了示例项目。 该项目使用Java 11。...
笔记先前针对Neo4j 2.x的JDBC驱动程序已移至存储库。 作为一个图形数据库,Neo4j并不是以关系方式提供数据,并且该项目的确切目的是允许在关系范式中使用经典JDBC连接器的项目与Neo4j进行交互。 该驱动程序支持各种...
本压缩包中的学习笔记涵盖了五大主流数据库系统:Oracle、MySQL、MongoDB、Redis以及Neo4j,它们各自拥有独特的特性和用途,适用于不同的场景。 1. Oracle数据库: Oracle是一款关系型数据库管理系统(RDBMS),在...
笔记 如果要在现有数据库上尝试此操作,请先进行备份! 安装 使用mvn全新安装依赖项构建库:复制依赖项 从Neo4j服务器中删除neo4j-lucene-index.jar和所有lucene jar。 # build mvn clean install dependency:copy-...
【描述】"neo4j-clj" 包含了对Joplin的支持,Joplin是一个开源笔记和组织工具,它可能利用这个库来实现对数据库的管理和迁移功能。这表明,除了基础的数据库操作,该库还考虑到了应用程序在实际开发中的需求,如数据...
标题中的“OSCON2017 Neo4j推荐研讨会”是指在2017年开源大会(Open Source Convention,简称OSCON)上举行的一场关于Neo4j图数据库的推荐系统研讨会。这场研讨会可能探讨了如何利用Neo4j构建高效、精准的推荐引擎。...
该程序将包含图像/标签信息的 json 文件导入到图形数据库 neo4j 中。 它是用 node.js 编写的,需要包... 笔记和问题还有一个因为上面的包没有批处理支持,是用coffee脚本编写的。 。 让我们一步一步地学习如何使用它。
【Redis完整版笔记】深入解析Redis作为NoSQL数据库的关键特性 Redis是一款高性能的Key-Value内存数据库,广泛应用于缓存、消息队列、计数器等多个场景。在NoSQL数据库的大潮中,Redis以其出色的速度和灵活性...
Neo4j是一个图形数据库,可能被用于存储和查询书籍、笔记之间的关系。在读书笔记应用中,这种关系数据库可以高效地处理书籍之间的引用、用户的阅读历史以及笔记的关联性。Spring Data Neo4j库可以方便地将Spring ...
在本笔记中,我们将探讨如何构建一个基于MongoDB和Neo4j的百科知识图谱,以及如何利用Scrapy爬虫获取数据。 首先,我们从启动数据库开始。MongoDB是一个流行的文档型数据库,适合存储非结构化或半结构化数据,如...