我正在尝试将 GDS 1.8.2 用作运行嵌入式 Neo4j 4.4.3 服务器的系统的一部分。嵌入式服务器作为一个运行组件已经有好几年了,Neo4j 的几个版本,所以这个组件本身已经过时间检验并且功能很好。这是在该组件中添加对图形算法的支持的第一次尝试。
我的第一个测试只是提交一个 CQL 查询:
CALL gds.graph.create("someNamedGraph", ["SomeNodeLabel"], ["SomeRelationshipType"])
在让它工作的过程中,我发现我必须在图形数据库的GlobalProcedures注册表中注册org.neo4j.gds.catalog.GraphCreateProc类。这似乎是成功的,因为虽然我最初遇到 CQL 异常说该过程是未知的,但现在它似乎毫无例外地执行。但是,我现在看到事务没有生成命名图(通过使用开箱即用的 Neo4j 社区版服务器模式检查图数据库来验证)。它只运行了大约 0.1 秒(与通过 Neo4j 社区版服务器模式运行的几秒钟相比,它工作得很好)。gds.graph.create
我现在看到的是查询执行类型(如从执行返回的结果对象中所示)被标记为 READ_ONLY。没有异常、通知等。我已经验证了在同一测试代码中的后续写入事务,它创建了一个简单的节点(作为测试),成功地写入了一个节点,并且 Result 对象提供了该事务的所有验证信息.
谁能建议为什么gds.graph.create过程似乎毫无例外地执行,但不知何故被标记为 READ_ONLY 事务?这甚至是没有创建命名图的原因吗?
感谢您的建议或提示!如果有人有探索性问题可能有助于找出其根本原因,我很乐意提供更多详细信息。