Neo4j是一个Java开发的图数据库,它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。相对于关系数据库来说,图数据库善于处理大量复杂、互连接、低结构化的数据,这些数据变化迅速,需要频繁的查询——在关系数据库中,这些查询会导致大量的表连接,因此会产生性能上的问题。Neo4j重点解决了拥有大量连接的传统RDBMS在查询时出现的性能衰退问题。Neo4j还提供了非常快的图算法、推荐系统和OLAP风格的分析,而这一切在目前的RDBMS系统中都是无法实现的。它提供了广泛使用的REST接口,能够方便地集成到基于JAVA、PHP、.NET和JavaScript的环境里。

创建节点

CREATE (ee:员工 { 姓名: "张勇", 来自: "中国" , 年龄 : 99 })

通过CREATE创建一个节点

() 代表一个节点

ee:员工 变量‘ee‘,标签label是 ‘员工‘

{} 包含了属性

自己动手写个Demo试试

CREATE (p1:Person {name:'胡兴炯', born:1991, interest:'mac,ios,旅游', goodat:'java,swift,objectiveC'})

CREATE (p2:Person {name:'张勇', born:1990, interest:'android', goodat:'java,android'})

CREATE (p3:Person {name:'成文龙', born:1990, interest:'linux,hadoop', goodat:'linux,java,android'})

CREATE (p4:Person {name:'王昕', born:1978, interest:'wpf,noSQL,旅游', goodat:'java,c#'})

CREATE (p5:Person {name:'周开琪', born:1977 , interest:'管理', goodat:'管理,'})

CREATE (p6:Person {name:'徐锦亮', born:1985, interest:'前端', goodat:'前端,html5'})

CREATE (p8:Person {name:'徐辉霞', born:1990, interest:'管理,旅游', goodat:'管理,采购'})

CREATE (p9:Person {name:'黄廷鹏', born:1992, interest:'OA', goodat:'java'})

CREATE (p10:Person {name:'史乐乐', born:1991, interest:'OA,旅游', goodat:'管理'})

CREATE (p1)-[:认识]->(p2)

CREATE (p1)-[:认识]->(p3)

CREATE (p1)-[:认识]->(p4)

CREATE (p1)-[:认识]->(p5)

CREATE (p1)-[:认识]->(p9)

CREATE (p2)-[:认识]->(p1)

CREATE (p2)-[:认识]->(p3)

CREATE (p2)-[:认识]->(p4)

CREATE (p2)-[:认识]->(p5)

CREATE (p2)-[:认识]->(p9)

CREATE (p3)-[:认识]->(p1)

CREATE (p3)-[:认识]->(p2)

CREATE (p3)-[:认识]->(p4)

CREATE (p3)-[:认识]->(p5)

CREATE (p3)-[:认识]->(p9)

CREATE (p4)-[:认识]->(p1)

CREATE (p4)-[:认识]->(p2)

CREATE (p4)-[:认识]->(p3)

CREATE (p4)-[:认识]->(p5)

CREATE (p4)-[:认识]->(p9)

CREATE (p5)-[:认识]->(p1)

CREATE (p5)-[:认识]->(p2)

CREATE (p5)-[:认识]->(p3)

CREATE (p5)-[:认识]->(p4)

CREATE (p5)-[:认识]->(p6)

CREATE (p5)-[:认识]->(p8)

CREATE (p5)-[:管理]->(p1)

CREATE (p5)-[:管理]->(p2)

CREATE (p5)-[:管理]->(p3)

CREATE (p5)-[:管理]->(p4)

CREATE (p5)-[:管理]->(p6)

CREATE (p6)-[:认识]->(p5)

CREATE (p6)-[:认识]->(p4)

CREATE (p6)-[:夫妻]->(p8)

CREATE (p9)-[:认识]->(p1)

CREATE (p9)-[:认识]->(p2)

CREATE (p9)-[:认识]->(p3)

CREATE (p9)-[:认识]->(p10)

CREATE (p9)-[:单相思]->(p10)

CREATE (p10)-[:认识]->(p9)

运行完上面脚本的效果

查找所有擅长goodat“管理”的人

MATCH (n:Person ) WHERE n.goodat =~ '.*管理.*' return n;

查找成文龙“认识“的人

MATCH (n:Person { name: '成文龙' })-[:认识]-(neighbors) RETURN n,neighbors

查找所有“单相思”的人

MATCH (n:Person)-[:单相思]-(neighbors) RETURN n,neighbors

查找周开琪“管理”的人

MATCH (n:Person { name: '周开琪' })-[:管理]-(neighbors) RETURN n,neighbors

查找徐辉霞“认识“的人 (2层关系网络)

MATCH (n:Person { name: '徐辉霞' })-[:认识*1..2]-(neighbors) RETURN n, collect(DISTINCT neighbors)

查找徐辉霞“认识“的人 (3层关系网络)

MATCH (n:Person { name: '徐辉霞' })-[:认识*1..3]-(neighbors) RETURN n, collect(DISTINCT neighbors)

徐锦亮找到史乐乐的所有最短路径 (不超过4层)

MATCH p=allShortestPaths(

(a:Person { name: '徐锦亮' })-[:认识*..4]-(b:Person { name: '史乐乐'})

)

RETURN p

删除所有节点和关系

MATCH (n)

OPTIONAL MATCH (n)-[r]-()

DELETE n,r

neo4j java 模糊搜索,Neo4j 使用cypher语言进行查询相关推荐

  1. (三)Neo4j自带northwind案例--Cypher语言应用

    0.概述 通过该案例,应用Cypher查询语言,感受Neo4j套路.官方的用此案例的用意: The Northwind Graph demonstrates how to migrate(迁移) fr ...

  2. neo4j基本知识及Cypher语言

    文章目录 1. neo4j中的基本概念 2. Cypher语言 1. neo4j中的基本概念 节点(node):表示一个实体记录.一个节点包含多个属性和标签,如上图中的Tom Hanks.Sleepl ...

  3. Neo4j / Cypher语言学习

    文章目录 1. 普通的Match: 查找John和John的朋友 2. 添加过滤条件的查询 3. 基础知识 模式 节点语法 关系语法 更新语句 返回语句 4. 唯一性 5. 设置Cypher查询的版本 ...

  4. Neo4j ③ 管理员操作, 备份恢复, 调优思路, 程序访问, 嵌入式, 服务器模式, Java 操作 Neo4j, 整合 SpringBoot

    目录 第四部分 Neo4j之Admin管理员操作 4.1 Neo4j - 数据库备份和恢复 4.2 调优思路 1.增加服务器内存 和 调整neo4j配置文件 2.neo4j刚启动数据是冷的需要预热 3 ...

  5. Neo4j Java REST绑定–第2部分(批处理)

    在第1部分中 ,我们讨论了使用Java REST绑定建立与Neo4j Server的连接. 现在让我们详细了解事务,批处理以及REST请求的实际情况.确保org.neo4j.rest.logging_ ...

  6. Neo4j Java Rest绑定入门(Heroku部署)

    信不信由你,最近几天是我第一次尝试使用Neo4j的Java Rest Binding . 我先前在Heroku上的Flavorwocky应用程序使用了Grails Neo4j插件以及其他一些东西,包括 ...

  7. 使用java连接neo4j aura数据库

    使用java连接neo4j aura数据库的方法 最近想学习一下neo4j,正好在官网上看到了neo4j aura,就打算尝试一下. 环境配置 这里就不多说了,主要是java环境和neo4j环境的配置 ...

  8. neo4j知识图谱中的cypher语句

    使用图进行数据建模 之前给大家提供过一种构建疫情知识图谱的思路,将病例与病例之间的联系.病例与行程轨迹之间的联系利用neo4j进行表示.上述思路大家可以参考我的博客:https://blog.csdn ...

  9. Java操作Neo4J就是这么简单,#yyds盘点#

    使用 Java 操作 Neo4J 首先我们先使用原生的这种方式,导入 jar 包,然后: public class TestController { public static void main(S ...

最新文章

  1. python使用函数的目的_在Python 3.x中经常看到定义函数有一个单独的 * 参数?定义这样参数的目的是?怎样对其取值呢?...
  2. dedecms直接访问域名不能跳转到index.php怎么办
  3. java groovy jar包_如何将jar包包含在groovy脚本中?
  4. python legb_理解 Python 的 LEGB.
  5. httpd设置HTTPS双向认证
  6. mysql 联合主键_深入理解Mysql索引底层数据结构与算法,背后的故事
  7. orcad如何设置模块化设计_这个模块化的办公桌让您设计每一个元素,以创造完美的工作设置...
  8. linux+模块与设备关系,linux内核设计与实现读书笔记——设备和模块
  9. 安卓扁平化之路专题(二)ActionBar的Overlay模式
  10. iOS实现音频和视频播放-运用AVPlayer
  11. Vivado的下载和安装
  12. 2019各种比赛总结
  13. C++ 十进制转换为十六进制 ,十进制转换为二进制,十六进制转换为十进制
  14. java 添加文本框_java 添加了文本框的窗口
  15. 风口下的追逐:AI正在驾驶、客服、教育领域疾驰
  16. ACWING297. 赤壁之战(树状数组dp)
  17. 法兰克服务器电源维修,FANUC电源模块故障维修
  18. Codeforces 26B. Regular Bracket Sequence
  19. 如何正确构思治具夹具的结构
  20. os.rename和os.renames区别

热门文章

  1. 【Nginx】关于二级域名配置https
  2. 绚丽的魔兽世界,广袤的艾泽拉斯大陆
  3. 媒体报道 | 创业邦:巴别鸟,一款便捷好用的企业级文件协同网盘
  4. 今日头条给我发工资744.53元 坚持原创终于有了回报
  5. 《现代密码学教程》| 谷利泽 | 课后答案 | 个人整理
  6. pandas计算店家的每日营业额示例
  7. [附源码]计算机毕业设计springboot动物保护协会网站
  8. 生于安乐,死于忧患.
  9. 微信小程序之订阅消息推送
  10. 2008欧锦赛 球员名单 C组