小编Chr*_*sen的帖子

创建大量关系时内存不足

我是Neo4J的新手,我想尝试一下我从MySQL导出的一些数据.我已经运行了社区版neo4j console,我正在使用neo4j-shell命令行客户端输入命令.

我有2个CSV文件,用于创建2种类型的节点,如下所示:

USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:/tmp/updates.csv" AS row
CREATE (:Update {update_id: row.id, update_type: row.update_type, customer_name: row.customer_name, .... });

CREATE INDEX ON :Update(update_id);

USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:/tmp/facts.csv" AS row
CREATE (:Fact {update_id: row.update_id, status: row.status, ..... }); 

CREATE INDEX ON :Fact(update_id);
Run Code Online (Sandbox Code Playgroud)

这给了我大约650,000个更新节点和21,000,000个Fact节点.

索引在线后,我尝试在节点之间创建关系,如下所示:

MATCH (a:Update)
WITH a
MATCH (b:Fact{update_id:a.update_id})
CREATE (b)-[:FROM]->(a)
Run Code Online (Sandbox Code Playgroud)

这失败了OutOfMemoryError.我相信这是因为Neo4J在事务完成之前不会提交事务,而是将其保留在内存中.

我该怎么做才能防止这种情况发生?我已经读过USING PERIODIC COMMIT但看起来这只在阅读CSV时有用,因为它在我的情况下不起作用:

neo4j-sh (?)$ USING PERIODIC COMMIT
> MATCH …
Run Code Online (Sandbox Code Playgroud)

neo4j cypher

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

Neo4J:交集和谓词

我正在做一个涉及Neo4J Db的项目,我正面临一个我自己无法解决的问题.

我们正在图中处理Acl.每个Acl都链接到一组元数据.项目也链接到这些元数据.当链接到项目的所有元数据也链接到元数据时,元数据授予对一个项目的访问权限.

这是图模型的图片: ACL图片图片

在此示例中,ACL1授予对item1(但不是item2)的访问权限,并且acl2授予对item2(但不是item1)的访问权限.

我认为诀窍是将节点上的ALL谓词链接到一个项目,但我的尝试总是返回图形中的所有项目(因为它们共享一个元素)

有人可以帮我创建密码查询,以便为一个用户返回他可以访问的所有项目吗?

谢谢你的帮助,格雷戈里

PS:这是一个Neo4j控制台示例数据集:http://console.neo4j.org/r/urjh64

acl intersection neo4j predicates cypher

2
推荐指数
1
解决办法
1411
查看次数

从列表中批量写入py2neo

我有以下数据,表示两个对象之间的距离.

data = [[('123','234'), 10],
        [('134','432'), 12],

       ]
Run Code Online (Sandbox Code Playgroud)

我想通过py2neo v3将它插入到neo4j中:

for e, p in enumerate(data):
    #
    id_left  = p[0][0]
    id_right = p[0][1]    
    distance = p[1]
    #
    left  = Node("_id", id_left)
    right = Node("_id", id_right)
    G.merge(left)
    G.merge(right)
    r = Relationship(left,'TO', right, distance=distance)
    G.create(r)
    #
Run Code Online (Sandbox Code Playgroud)

但我发现这非常非常慢.加速这项工作的最佳方法是什么?我环顾四周,但没有找到任何代码示例,清楚地说明了如何去做

neo4j cypher py2neo

2
推荐指数
1
解决办法
515
查看次数

从 Neo4j Sandbox 导出数据

所以我使用了 Neo4j 沙箱,并且那里有一个完整的图表,但是我的沙箱即将过期,所以我必须导出数据,并将其导入到我的本地主机社区 Neo4j 实例中,我尝试使用 APOC,但问题是当我调用它时apoc.export.cypher.all(.....)它不起作用,因为我必须在我的沙箱实例中添加文件apoc.export.file.enabled=true。neo4j.conf

-> 整个错误:Failed to invoke procedure apoc.export.cypher.all : Caused by: java.lang.RuntimeException: Export to files not enabled, please set apoc.export.file.enabled=true in your neo4j.conf

这里的问题是我无法访问沙箱上的配置文件,但我可以使用cypher-shell.

有什么建议可以让我在沙箱过期之前导出我的数据吗?提前致谢 !!

neo4j cypher neo4j-apoc cypher-shell

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

使用 Junit5 的参数化 testcontainer 镜像标签

在 Testcontainers 文档中,有一个使用 @ParameterizedTest 参数化 docker 映像的示例。

这是一个 junit4 示例。

https://github.com/testcontainers/testcontainers-java/blob/main/core/src/test/java/org/testcontainers/junit/ParameterizedDockerfileContainerTest.java

@RunWith(Parameterized.class)
public class ParameterizedDockerfileContainerTest {

    private final String expectedVersion;

    @Rule
    public GenericContainer container;

    public ParameterizedDockerfileContainerTest(String baseImage, String expectedVersion) {
        container =
            new GenericContainer(
                new ImageFromDockerfile()
                    .withDockerfileFromBuilder(builder -> {
                        builder
                            .from(baseImage)
                            // Could potentially customise the image here, e.g. adding files, running
                            //  commands, etc.
                            .build();
                    })
            )
                .withCommand("top");
        this.expectedVersion = expectedVersion;
    }

    @Parameterized.Parameters(name = "{0}")
    public static Object[][] data() {
        return new Object[][] { //
            { "alpine:3.12", "3.12" }, …
Run Code Online (Sandbox Code Playgroud)

java junit5 testcontainers testcontainers-junit5

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

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

有没有办法用py2neo来获取图中所有连接的节点.通过关系连接的所有节点?

neo4j cypher py2neo

0
推荐指数
1
解决办法
448
查看次数

neo4j-php-client中的错误处理程序

我下载并安装了neo4j-php-client和neo4j 2.3.2.实际上一切正常,但我只是想知道为什么这个php客户端没有错误处理程序?例如,如果cypher查询中存在错误,则没有错误抛出很容易捕获它.我通过网络搜索,但我找不到解决方案.

有人知道如何打开错误处理程序吗?

提前致谢.

php neo4j graphaware

0
推荐指数
1
解决办法
373
查看次数