neo4j java 模糊搜索,Neo4j 使用cypher语言进行查询
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语言进行查询相关推荐
- (三)Neo4j自带northwind案例--Cypher语言应用
0.概述 通过该案例,应用Cypher查询语言,感受Neo4j套路.官方的用此案例的用意: The Northwind Graph demonstrates how to migrate(迁移) fr ...
- neo4j基本知识及Cypher语言
文章目录 1. neo4j中的基本概念 2. Cypher语言 1. neo4j中的基本概念 节点(node):表示一个实体记录.一个节点包含多个属性和标签,如上图中的Tom Hanks.Sleepl ...
- Neo4j / Cypher语言学习
文章目录 1. 普通的Match: 查找John和John的朋友 2. 添加过滤条件的查询 3. 基础知识 模式 节点语法 关系语法 更新语句 返回语句 4. 唯一性 5. 设置Cypher查询的版本 ...
- Neo4j ③ 管理员操作, 备份恢复, 调优思路, 程序访问, 嵌入式, 服务器模式, Java 操作 Neo4j, 整合 SpringBoot
目录 第四部分 Neo4j之Admin管理员操作 4.1 Neo4j - 数据库备份和恢复 4.2 调优思路 1.增加服务器内存 和 调整neo4j配置文件 2.neo4j刚启动数据是冷的需要预热 3 ...
- Neo4j Java REST绑定–第2部分(批处理)
在第1部分中 ,我们讨论了使用Java REST绑定建立与Neo4j Server的连接. 现在让我们详细了解事务,批处理以及REST请求的实际情况.确保org.neo4j.rest.logging_ ...
- Neo4j Java Rest绑定入门(Heroku部署)
信不信由你,最近几天是我第一次尝试使用Neo4j的Java Rest Binding . 我先前在Heroku上的Flavorwocky应用程序使用了Grails Neo4j插件以及其他一些东西,包括 ...
- 使用java连接neo4j aura数据库
使用java连接neo4j aura数据库的方法 最近想学习一下neo4j,正好在官网上看到了neo4j aura,就打算尝试一下. 环境配置 这里就不多说了,主要是java环境和neo4j环境的配置 ...
- neo4j知识图谱中的cypher语句
使用图进行数据建模 之前给大家提供过一种构建疫情知识图谱的思路,将病例与病例之间的联系.病例与行程轨迹之间的联系利用neo4j进行表示.上述思路大家可以参考我的博客:https://blog.csdn ...
- Java操作Neo4J就是这么简单,#yyds盘点#
使用 Java 操作 Neo4J 首先我们先使用原生的这种方式,导入 jar 包,然后: public class TestController { public static void main(S ...
最新文章
- python使用函数的目的_在Python 3.x中经常看到定义函数有一个单独的 * 参数?定义这样参数的目的是?怎样对其取值呢?...
- dedecms直接访问域名不能跳转到index.php怎么办
- java groovy jar包_如何将jar包包含在groovy脚本中?
- python legb_理解 Python 的 LEGB.
- httpd设置HTTPS双向认证
- mysql 联合主键_深入理解Mysql索引底层数据结构与算法,背后的故事
- orcad如何设置模块化设计_这个模块化的办公桌让您设计每一个元素,以创造完美的工作设置...
- linux+模块与设备关系,linux内核设计与实现读书笔记——设备和模块
- 安卓扁平化之路专题(二)ActionBar的Overlay模式
- iOS实现音频和视频播放-运用AVPlayer
- Vivado的下载和安装
- 2019各种比赛总结
- C++ 十进制转换为十六进制 ,十进制转换为二进制,十六进制转换为十进制
- java 添加文本框_java 添加了文本框的窗口
- 风口下的追逐:AI正在驾驶、客服、教育领域疾驰
- ACWING297. 赤壁之战(树状数组dp)
- 法兰克服务器电源维修,FANUC电源模块故障维修
- Codeforces 26B. Regular Bracket Sequence
- 如何正确构思治具夹具的结构
- os.rename和os.renames区别