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
分享到:
相关推荐
非关系型数据库NoSQL数据库Neo4j入门笔记
│ neo4j笔记.docx │ neo4j错误码状态码.html │ └─01.neo4j学习博客汇总 │ index.html └─neo4j_cypher │ Cypher(神奇的WITH).html │ cypher_index.html │ Cypher查询语言--Neo4j 综合(四) - ...
个人调研学习Neo4j图数据库时,记录的一些学习笔记。稍加整理后上传。内容有些杂。 个人调研学习Neo4j图数据库时,记录的一些学习笔记。稍加整理后上传。内容有些杂。
本文为自己在安装使用neo4j过程中的笔记。 Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据...
学习图数据库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。...
数据库学习笔记包括:Oracle、MySQL、MongoDB、Redis,Neo4j的在完善
笔记先前针对Neo4j 2.x的JDBC驱动程序已移至存储库。 作为一个图形数据库,Neo4j并不是以关系方式提供数据,并且该项目的确切目的是允许在关系范式中使用经典JDBC连接器的项目与Neo4j进行交互。 该驱动程序支持各种...
笔记 如果要在现有数据库上尝试此操作,请先进行备份! 安装 使用mvn全新安装依赖项构建库:复制依赖项 从Neo4j服务器中删除neo4j-lucene-index.jar和所有lucene jar。 # build mvn clean install dependency:copy-...
该程序将包含图像/标签信息的 json 文件导入到图形数据库 neo4j 中。 它是用 node.js 编写的,需要包... 笔记和问题还有一个因为上面的包没有批处理支持,是用coffee脚本编写的。 。 让我们一步一步地学习如何使用它。
笔记 该项目需要Neo4j 3.2.x 非常感谢和。 安装 从下载jar或在本地构建它 将其复制到$NEO4J_HOME/plugins目录中。 重新启动服务器。 内置分类和回归(WIP) CALL ml.create("model",{types},"output",{config}) ...
Minas Gerais天主教大学(PUC-MG)使用Python 3以及关系和非关系数据库(Oracle,MongoDB,Redis,Neo4J)的脚本和笔记本存储库,用于数据科学和大数据的毕业后研究) 技术涵盖 的Python 3 NumPy 大熊猫 ...
特点基于neo4j图数据库存储笔记信息,将知识点拆到足够细,并作为一个知识节点。利用图数据库的关系属性将节点串联起来。定制Markdown,使笔记信息密度更加紧凑,更符合工具型文档的特性。传统Markdown样式比较漂亮...
Protege新手入门(入门篇+进阶篇+推理篇+使用笔记)
使用 Java 和 Neo4j 提取和学习特征,并通过在加权 tf-idf 特征向量上构建逻辑回归分类器进行评估。 在线查看笔记本 笔记本的内容可以通过 nbviewer.ipython.org 在线查看。 安装 Python 对于笔记本的真正交互式...
沙里亚尔的笔记 原则 比特科技 算法 CI / CD 开发运维 地理信息系统 集成开发环境 3D 资源 概念 统一 虚拟现实 云 云 蔚蓝 Kubernetes 语言能力 Java s VueJS 打字稿 React p Cpp C# F# 去 斯威夫特/ ...
图数据科学博客该存储库包含Jupyter笔记本的集合,这些笔记本支持我使用Neo4j进行的Graph Data Science探索博客文章。
从您的演讲笔记中生成闪存卡! 将文本或降价文件上传到网站,它将尽其所能地解析事实并为您自己的学习生成抽认卡。 您也可以编辑抽认卡! 为了运行: 安装要求: pip install -r requirements.txt 安装neo4j: ...