标签: neo4j

Neo4J是否适合clojure?

我发现关系数据库非常适合Clojure,因为set函数(project/join/union等)很好地映射到数据库模式,使Clojure几乎完全适合与数据库一起使用.

我想知道Clojure如何适应像Neo4j这样的图形数据库呢?

clojure neo4j

15
推荐指数
2
解决办法
4045
查看次数

在Neo4j/Spring-Data中加载/获取Lazy/Eager

我有一个简单的设置,遇到一个令人费解的(至少对我来说)问题:

我有三个相互关联的pojos:

@NodeEntity
public class Unit {
    @GraphId Long nodeId;
    @Indexed int type;
    String description;
}


@NodeEntity
public class User {
    @GraphId Long nodeId;
    @RelatedTo(type="user", direction = Direction.INCOMING)
    @Fetch private Iterable<Worker> worker;
    @Fetch Unit currentUnit;

    String name;

}

@NodeEntity
public class Worker {
    @GraphId Long nodeId;
    @Fetch User user;
    @Fetch Unit unit;
    String description;
}
Run Code Online (Sandbox Code Playgroud)

所以你有User-Worker-Unit有一个"currentunit",它在用户中标记允许直接跳转到"当前单位".每个用户可以有多个工作人员,但只有一个工作人员被分配到一个单元(一个单元可以有多个工作人员).

我想知道的是如何控制"User.worker"上的@Fetch注释.我实际上希望这只在需要的时候加盖,因为大多数时候我只和"工人"一起工作.

我浏览了http://static.springsource.org/spring-data/data-neo4j/docs/2.0.0.RELEASE/reference/html/,对我来说并不是很清楚:

  • worker是可迭代的,因为它应该是只读的(传入关系) - 在文档中这是明确说明的,但是在示例中''Set''在大多数情况下被使用.为什么?或者不重要......
  • 如何让工作人员只加载访问权限?(懒加载)
  • 为什么我需要用@Fetch注释简单的关系(worker.unit).有没有更好的方法?我有另外一个与MANY这样简单关系的实体 - 我真的想避免因为我想要一个对象的属性而加载整个图形.
  • 我错过了一个弹簧配置,所以它适用于延迟加载?
  • 有没有办法通过额外的呼叫加载任何关系(没有标记为@Fetch)?

从我的看法来看,这个构造只要我想要一个Worker就加载整个数据库,即使我大部分时间都不关心用户.

我发现的唯一解决方法是使用存储库并在需要时手动加载实体.

-------更新-------

我已经使用neo4j很长一段时间了,并找到了上述问题的解决方案,不需要一直调用fetch(因此不会加载整个图形).唯一的缺点:它是运行时方面:

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import …
Run Code Online (Sandbox Code Playgroud)

neo4j spring-data-graph spring-data-neo4j

15
推荐指数
1
解决办法
6305
查看次数

Neo4j和ORM(Hibernate)

我从大学开始就一直在使用RDBMS,而且我真的在努力研究NoSQL数据库的基本概念......但我认为他们的概念非常酷.

相信我理解以下内容(如果我错了,请纠正我,因为这些问题在我这里提出来了!):

  • NoSQL不是一些正式的规范; 它是一个新的"品种"数据库的概念,它不是关系数据库,也不使用SQL
  • 因此,每个NoSQL系统都不同(例如,MongoDB是以JSON为中心的)

如果这些都是真的,那么让我们将注意力转向Neo4j,这是一个"基于图形"的数据库.

仔细阅读该网站和PDF后,好像Neo4j的不仅是一个数据库,但它也提供了一个Java API,基本上取代了传统ORM工具如Hibernate的需要.

所以,我的最后一个问题实际上是要求澄清/确认最后一个断言,具体来说:

  • 如果我的后端完全基于Neo4j,那么我就不需要Hibernate(这是我通常的ORM)吗?这两个API是相互排斥的,还是有一些方法可以在使用它们之间获益?

提前致谢!

java orm hibernate neo4j nosql

15
推荐指数
3
解决办法
9734
查看次数

一起使用MongoDB和Neo4j

我正在开始一个新项目,我正在寻找使用MongoDB作为文档存储工具和Neo4j作为映射文档之间关系的机制,然后我想通过rest API公开我的查询结果.人们会说这样做的优点和缺点是什么?是否有更好的方法可以使用不同的NoSQL文档存储来实现这一目标?有没有人可以在网上找到有人试图做类似事情的例子?

mongodb neo4j nosql

15
推荐指数
4
解决办法
9228
查看次数

Neo4j 1.9.4 Windows Installer- shell去了哪里?

当您使用新的Windows安装程序安装1.9.4时,从何处启动Neo4j-Shell(之前在bin中找到)?

neo4j

15
推荐指数
1
解决办法
3850
查看次数

Neo4j中的自动增量属性

据我所知,Neo4j(ID(node))给出的ID 不稳定,行为有点像SQL中的行号.由于ID主要用于SQL中的关系,并且这些ID很容易在Neo4j中建模,因此ID似乎没有多大用处,但是如何解决特定节点的检索?拥有一个REST API,它应该为每个节点(例如/api/concept/23)提供唯一的路由,这似乎是Web应用程序的一个非常标准的案例.但尽管它是如此根本,我找到的唯一可行的方法是通过

  • 语言特定的框架
  • 作为保持增量的未连接节点:
// get unique id
MERGE (id:UniqueId{name:'Person'})
ON CREATE SET id.count = 1
ON MATCH SET id.count = id.count + 1
WITH id.count AS uid
// create Person node
CREATE (p:Person{id:uid,firstName:'Gabriel',lastName:'Smith'})
RETURN p AS person
Run Code Online (Sandbox Code Playgroud)

资料来源: http ://www.neo4j.org/graphgist?8012859

真的没有更简单的方法,如果没有,是否有一个特殊的原因呢?在Neo4j的背景下,我的方法是反模式吗?

language-agnostic neo4j

15
推荐指数
1
解决办法
4095
查看次数

Neo4j:Cypher WHERE Clause与MATCH条款中的Curly Braces - 哪个更好?

我是Neo4J的新手,过去几天一直在学习Cypher查询语言.

我意识到我可以这样写我的查询......

MATCH (b:Beverage)<-[:likes]-(p:Person)-[:likes]->(r:Restaurant) 
WHERE b.name = 'Beer' and r.name = 'KFC'
RETURN p.name
Run Code Online (Sandbox Code Playgroud)

......或者像这样......

MATCH (b:Beverage{name:'Beer'})<-[:likes]-(p:Person)-[:likes]->(r:Restaurant{name:'KFC'}) 
RETURN p.name
Run Code Online (Sandbox Code Playgroud)

哪种方法在性能方面更好?为什么?

谢谢.

neo4j cypher

15
推荐指数
1
解决办法
743
查看次数

是否有一种简单的基于GUI的方法来在neo4j中构建图形?

是否有neo4j的GUI构建器?我希望能够通过单击可视化中的节点,在gui环境中快速添加新节点,设置标签,设置属性和关系.我搜索过,但一无所获.谢谢.

neo4j

15
推荐指数
3
解决办法
1万
查看次数

DETACH DELETE Neo4j 2.3.x/Cypher

DETACH DELETE在Neo4j 2.3.x中添加新Cypher运算符的行为和目的是什么?

neo4j cypher

15
推荐指数
2
解决办法
6517
查看次数

如何在neo4j中获取所有连接的节点

在此输入图像描述

我想得到从节点0开始的所有连接节点的列表,如图所示

neo4j graph-databases cypher

15
推荐指数
3
解决办法
8534
查看次数