Springboot+Neo4j
文章平均质量分 67
Neo4j权威指南
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
APOC函数之路径(path)用法
本章来聊聊APOC里路径查询的用法,如果APOC库还不知道是什么或者不知道怎么安装可以参照文章APOC是啥了解了解!!!不要钱。文章中我们以查询产品光伏组件数据为例子。数据基于以下样本图:返回结果MaterialsRelationship类型是一个关系实体,定义如下:@Data@RelationshipEntity(type = "Materials")public class MaterialsRelationship { @Id private String uuid; /*原创 2021-04-29 23:22:53 · 1528 阅读 · 0 评论 -
APOC是啥了解了解!!!不要钱
上章节中提到了内置过程函数,用来创建全文索引。Neo4j本身内置过程函数的功能其实不多,为了方便我们使用到更多的内置过程函数,我们引入了APOC。一、什么是APOC?用来做什么?APOC代表Awesome Procedures on Cypher。在发布APOC之前,开发人员需要编写自己的过程和函数,以实现Cypher或Neo4j数据库尚未实现的常见功能。每个开发人员可能会编写自己的这些函数版本,从而导致大量重复。因此,我们的Neo4j开发人员之一将APOC库创建为通用程序和功原创 2021-04-12 21:50:08 · 1814 阅读 · 0 评论 -
Neo4j之全文检索(一)
本篇文章我们开始谈谈Neo4j的全文检索功能,Neo4j的全文索引是基于Lucene实现的,但是Lucene默认情况下只提供了基于英文的分词器,下篇文章我们在讨论中文分词器(IK)的引用,本篇默认基于英文分词来做。我们前边文章就举例说明过,比如我要搜索苹果公司?首先我们要做的第一步在各个词条上创建全文索引,第二步我们根据苹果公司进行全文检索,把匹配度高的按顺序输出。下边我们一步步讲解怎么做。一、call和yield的用法首先看看这两个词的用方法。CALL语句用于调用数据库中的过程(Procedure),YI原创 2021-04-12 21:49:34 · 3322 阅读 · 0 评论 -
Springboot+Neo4j如何返回自定义结果集
在上几篇的文章中,基于Springboot+Neo4j搭建了框架,做了一些节点与关系的常用操作。实际开发中还是会遇到一些问题,比如从Neo4j查询的数据如何转化成我们需要的结果?定义的Dto怎么接收到查询的结果呢?今天就来讲讲如何返回自定义的结果。还是以公司生产产品为例子。第一种返回方式:关系对象,节点对象。这种返回方式就是把定义的关系类和节点类直接作为接收对象返回。首先定义model里两个类:公司节点类(CompanyEntryNode),生产关系类(ProductionRelationship)@Nod原创 2021-04-12 21:48:48 · 4650 阅读 · 0 评论 -
Neo4j安装部署
经常看到大家在安装Neo4j的时候会遇到各种各样的问题,网上也有不少文章参考,今天分别按安装环境找了几个视频给大家参考。Windows环境安装视频:https://ke.qq.com/webcourse/index.html#cid=3323492&term_id=103454345&taid=10760039836071524&type=1024&vid=5285890813027140345Linux环境安装视频:https://ke.qq.com/webcourse/i原创 2021-04-11 12:42:36 · 255 阅读 · 0 评论 -
Neo4j 之 Cypher(二)
一、labels()函数,nodes()函数上篇文章Neo4j 之 Cypher(一)中我们说到了foreach()函数,relationships()函数。本章我们说说labels()函数,nodes()函数。match p=(n)where all(l in nodes(p) where labels(l)=["ProductEntry"])return p这段代码的意思就是查找处所有标签是ProductEntry的节点。其中nodes(p)表示该路径的所有节点,lables(l)表示该节点的所有原创 2021-04-11 12:42:03 · 273 阅读 · 0 评论 -
Neo4j 之 Cypher(一)
一般的增删改查操作,我们就不谈了。基本的操作网上都能查到,这篇文章就把我们经常会用到的写下来,供大家参考。话不多说直接开干。 -- 删除关系 -- 1、 (a)-[r]->(b) 要删除关系r,那我们直接这样写match (a:ProductEntry)-[r]->(b:ProductEntry)where id(a)='' and id(b)=''delete r2、原创 2021-04-11 12:41:28 · 410 阅读 · 0 评论 -
什么是Cypher?和Neo4j有什么关系?
什么是Cypher?Cypher是一种声明式图形查询语言,可用于表达性和高效的查询更新和管理。它旨在同时适合开发人员和运营专业人员。Cypher的设计既简单又强大。可以轻松表达高度复杂的数据库查询,使您可以专注于自己的域,而不会迷失在数据库访问中。Cypher受到许多不同方法的启发,并以用于表达查询的既定实践为基础。许多关键字(例如WHERE和ORDER BY)均受到SQL的启发。模式匹配借鉴了SPARQL的表达方法。某些列表语义是从Haskell和Python等语言中借用的。Cypher的结构基于英文散文原创 2021-04-11 12:40:55 · 720 阅读 · 0 评论 -
Springboot+Neo4j+Mysql事务配置(二)
本篇文章我们继续讨论neo4j与mysql多数据源时,批量事务的提交。就是说我一个提交结果里既有mysql更新,又有neo4j更新,这个时候的事务该怎么办呢?有人会说加两个事务不就行了,答案是当然不行的,因为@Transactional注解不支持多个事务管理器,默认使用transactionManager,需要实现@Transactional管理mysql事务。我们要做的就是把这两个事务合并成一个事务提交就OK了。那我们先自定义一个注解,表示这两个事务的合集@Target({ElementType.METH原创 2021-04-11 12:40:16 · 810 阅读 · 1 评论 -
Springboot+Neo4j+Mysql事务配置(二)
本篇文章我们继续讨论neo4j与mysql多数据源时,批量事务的提交。就是说我一个提交结果里既有mysql更新,又有neo4j更新,这个时候的事务该怎么办呢?有人会说加两个事务不就行了,答案是当然不行的,因为@Transactional注解不支持多个事务管理器,默认使用transactionManager,需要实现@Transactional管理mysql事务。我们要做的就是把这两个事务合并成一个事务提交就OK了。那我们先自定义一个注解,表示这两个事务的合集@Target({ElementType.METH原创 2021-04-11 12:39:26 · 1525 阅读 · 2 评论 -
Springboot+Neo4j+Mysql多数据源配置(一)
我们在做项目时,有时会同时用到关系型数据库和图数据库,这个一般根据业务以及技术选型来定,如果同时用到了Neo4j,Mysql两种数据库,我们的数据源应该怎么配置呢?下面跟着文章我们一点一点揭开面纱mysql我们采用mybatis框架首先看下我们pom.xml文件的引用<dependencies> <dependency> <groupId>org.springframework.boot</groupId>原创 2021-04-11 12:38:48 · 2857 阅读 · 9 评论 -
Springboot+Neo4j节点与关系的操作(三)
前两篇文章Springboot+Neo4j 初级框架搭建(一),Springboot+Neo4j 初级增删改查(二)我们介绍了Springboot集成Neo4j,以及Neo4j单节点的操作。本篇文章我们就来写写节点与节点中关系的操作!!!话不多说直接开干。在上篇文章中,我们以公司为例子做了演示,本篇文章我们还是以公司和产品为示例演示。在生活中公司和产品有很多种关系,比如苹果是一个公司,iPhone12是一个产品,苹果和iPhone12就是一个生产的关系。我们就以这样一个简单的例子来做一个增删改查的操作我可能原创 2021-04-11 12:38:00 · 3091 阅读 · 2 评论 -
Springboot+Neo4j 初级增删改查(二)
上一篇文章 Springboot+Neo4j 初级框架搭建(一) 我们完成了系统的搭建,这篇文章我们来谈谈Neo4j的增删改查基本操作。在dao层我们继承了Neo4jRepository<T,ID>,这里其实已经帮我们实现了大部分对Neo4j数据库的操作,查看源码中Neo4jRepository<T,ID>继承PagingAndSortingRepository<T,ID>和CrudRepository<T,ID>,PagingAndSortingR原创 2021-04-11 12:36:27 · 711 阅读 · 0 评论
分享