问题标签 [tinkergraph]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
87 浏览

neo4j - 嵌入式 Neo4j 的性能问题

我有一些带有 100 万个节点和 300 万条边的旧图形数据,我想将它们转换为 Neo4j。

我正在使用嵌入的 Neo4j,我的程序大致如下:

但是,创建过程超级慢。使用完全相同的逻辑,使用 TinkerGraph 程序运行得更快。

我想知道是否有任何技巧可以加快速度?谢谢!

0 投票
2 回答
766 浏览

java - 考虑到 Java 中 tinkergraph 权重的最短路径

考虑到边缘上的权重属性,我试图找到最短路径,我的工作是在 TinkerGraph 上,我想在 java 中完成。

gremlin 对我不是很有帮助

这给了我最短路径,而不考虑边缘的权重属性。

编辑:我的例子:

边缘插入:

源,目标

b1,b2

b1,b2

b1,b2

b1,b2

b1,b3

b3,b2

换句话说,边缘的权重会根据边缘的频率更新,例如,如果 b1,b2 出现 4 次,则边缘的权重为 4。现在我希望 Dijkstra 返回权重方面的最短路径,而不是边缘最短。路径(b1,b2) = b1->b3->b2

0 投票
1 回答
131 浏览

java - Tinkerpop3 自定义边缘 id 生成器

TinkerGraph用于 Java 中的集成测试(扩展单元测试)。在此实现Edge ids中,生成为整数序列。我想更改它,以便将它们生成为随机 UUID。这样做的原因是为了让我的测试设置更接近我的生产图形数据库。我可以这样做Tinkerpop3吗?如果可以,怎么做?

我发现在 Tinkerpop/blueprints ( https://github.com/tinkerpop/blueprints/wiki/id-implementation ) 中存在一个IdGraph.IdFactory似乎可以提供我需要的东西。但是,据我了解,这不适用于 Tinkerpop3。

0 投票
0 回答
115 浏览

java - 在方向图中从 JAVA 添加具有属性的类顶点以及另一个类顶点的列表等

A类具有属性并具有B类列表,B类具有属性并具有C类列表。C类具有属性等等。

我正在尝试保存 java 对象并使用 tinkerpop - 尝试添加方向图

所以如果我必须在方向图中添加 A 类顶点。我需要用prop1和prop2添加A类的顶点-我需要用prop3和prop4添加B类的顶点以及A类列表中的任何计数。-我需要在A类顶点和B类顶点之间添加边,所以它可以携带关系A到B。

同样,我需要在方向图中添加 C 类顶点,其中包含 B 类列表中的任何计数。 - 我需要在每个 B 类顶点和 C 类顶点之间添加边,以便它可以承载 B 到 C 之间的关系。

如果这是第 10 级,那么为每个类添加顶点可能会变得混乱且难以实现。这将是更多的手动添加。

有什么办法可以一次性将具有 B 类顶点的 A 类顶点保存为列表和 B 类下的 C 类列表,而不是添加每个类顶点并建立关系

我正在尝试通过 java tinkerpop - gremlin、blueprints 等来实现它。有什么建议/想法吗?

0 投票
1 回答
40 浏览

gremlin - 我应该将 GryoMapper 声明为静态字段吗?

看了下面的代码,貌似是线程安全的。

https://github.com/apache/tinkerpop/blob/master/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoMapper.java

希望像这样使用它

代替

0 投票
2 回答
1518 浏览

spring - 如何修复'java.lang.NoClassDefFoundError:org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSource$GraphTraversalSourceStub'?

我正在尝试使用 TinkerGraph 初始化内存中的图。

首先,我在上下文 xml 文件中定义了 bean,并尝试初始化 TinkerGraph。

我的目的是对我为形成 gremlin 查询而创建的类进行单元测试,我从这些类中获得的最终查询是字符串的形式,所以为了通过 TinkerGraph 执行它们,我使用了以下帖子中给出的方法: Get Gremlin query as a String and execute it in java without submit it to the GremlinServer

我还想知道我采用的方法是否是首选方法,用于将 gremlin 查询作为单元测试的一部分运行?

以下是我在 pom.xml 中包含的依赖项:

EmbeddedGremlinQueryEngine 如下:

堆栈跟踪如下:

EmbeddedGremlinQueryEngine 被定义为 xml 文件中的 bean,当加载 bean 时,由于构造函数抛出异常,我得到错误;嵌套异常是 java.lang.NoClassDefFoundError: org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSource$GraphTraversalSourceStub

我不明白 GraphTraversalSourceStub 在初始化过程中是如何出现的,我找不到任何有关它的信息。任何帮助,将不胜感激。

0 投票
1 回答
249 浏览

gremlin - 有没有办法在不写入文件的情况下获得内存中 TinkerGraph 的 GraphML 表示?

我有一个内存 TinkerGraph。我想编写一个 Spring Boot REST 控制器来公开这个 Tinkergraph 的序列化(作为 GraphML)表示。序列化 API (g.io) 需要将字符串文件路径传递给它。目前,我必须写入 /tmp 文件,然后读取该文件以获取序列化 GraphML 的字符串表示形式。

有没有办法直接获取序列化 GraphML 的字符串输出?无需写入 tmp 文件并将其读回?

0 投票
1 回答
164 浏览

gremlin - ScriptEvalutionError:对于输入字符串“”:提供字符串作为 ID 时

我已经在我的开发机器上为 tinkerpop/gremlin-server 设置了一个 docker 容器。

我有一个使用 Gremlin.Net 3.4.1 版的 .NET Core 应用程序

我使用 IRemlinClient 连接到本地主机泊坞窗,并在传递以下查询以添加顶点时:

然后我得到错误:

当我使用 gremlin 控制台运行查询时,会添加顶点:

在我的应用程序中通过 IRemlinClient 运行时,如何创建一个带有字符串作为 Id 的新顶点?

0 投票
1 回答
150 浏览

tinkerpop3 - 只有在可以添加边的情况下,如何才能添加新顶点?

我需要添加一个带有边缘的新顶点。我的代码是这样的:

如果V().has("OtherVertex", "name", "test")返回一个顶点,一切正常。我的问题是,如果OtherVertex不存在,Gremlin 会添加没有边的新顶点。只有当我可以创建边缘时,我才想添加新的顶点。我正在使用 Gremlin-server 进行开发。我的猜测是,我可以尝试使用Transactions,但我不确定 AWS Neptune 现在是否支持它。

有什么建议吗?谢谢。


我想,避免交易,我意识到我可以OtherVertex先选择。如果它不存在,查询将不会创建新的 Vertex:

0 投票
1 回答
182 浏览

gremlin - Tinkergraph 遍历在我的图表上返回一个空数组 []

我已经导入了一个图,并且可以确认顶点和边的数量与应该存在的数量相匹配。我在图上运行 simplepath() 计算,我的第一个问题是如何访问路径数组或映射返回的任何内容,我想我理解为我添加 .toList 并将其打印到控制台但是我只是得到 [] 一个空数组?

我在做什么错我需要访问从路径返回的结果集?

我在 Java 中而不是在 gramlin 控制台中运行的查询是:

我还运行以下命令,但仍然返回一个空数组:

systemOut 打印时的响应是 []

此外,graphml 文档示例在这里,它是一个非常大的文档,所以我只包含了 2 个顶点和 2 个边:

尝试的查询示例: