gpt4 book ai didi

neo4j - 在 Neo4j OGM 1.1.3 ogm depth of 2 中加载对象非常慢

转载 作者:行者123 更新时间:2023-12-04 16:08:07 42 4
gpt4 key购买 nike

使用 session.load() 查询深度 2 时出现超时.我正在使用 Neo4j OGM 1.1.3(尝试从 Spring Data Neo4j 3.4 迁移)。尝试加载 Node 对象

class Node {
Long id;
String name;

@Relationship(type="NodeToCategory")
Category category;

@Realtionship(type="NodeToChildNode")
Node node
}

class Category {
Long id;
String name;
String color;
Date createdAt;
}

连接到我的节点的类别非常受欢迎(20,000 个节点具有相同的类别),当我使用 run session.load(Node.class, 1L, 2) 时请求超时。是不是它正在尝试查询类别的所有关系(即使我的 Java 模型类别忽略了这种关系)?

我希望它加载的内容很简单:
|My Node
| |category
| |child node
| | | category
| | | child node

这不是一个非常繁重的请求,不应超时(除非它正在加载不需要的关系。

有没有办法告诉一个只加载某些关系深入?

例如,我想加载树的 10 个级别,但我的树上的其他信息(例如类别、角色,它们不是真正的树节点,只是代表更多信息)我只想加载它们而没有它们的关系。所以我想加载所有 Node 对象,并且只加载其他对象,而没有它们的关系。

更新

发现了两个似乎可以解决这些问题的未决问题:

https://github.com/neo4j/neo4j-ogm/issues/55

https://github.com/neo4j/neo4j-ogm/issues/70

最佳答案

此问题已在基于架构加载的 OGM 3.0 中得到解决。

基于模式的加载意味着 OGM 现在查看您的对象域模型,只获取模型中真正存在的内容,而不是指定深度的所有内容。

在您的情况下,如 Category不要链接回 Node ,新版本不会加载这么多不需要的节点,从而带来巨大的性能提升。

关于neo4j - 在 Neo4j OGM 1.1.3 ogm depth of 2 中加载对象非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33486334/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com