问题标签 [gremlin]

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 回答
409 浏览

neo4j - 使用 Tinkerpop Frames,无论标签如何,我如何获取 Vertex 的所有传入或传出边缘?

Tinkerpop Frames wiki 说,可以在下面给出一个顶点的注释,以获取给定人“认识”的所有人。但是,无论连接他们的边缘是什么标签,我如何找到与给定人相关的所有人?这可能吗?

谢谢!

0 投票
1 回答
1269 浏览

console - OrientDB GraphED - 可以自定义记录标识符吗?搜索 150 万条记录非常慢

Orient 版本:官方分发 OrientDB Graph Edition 1.0.1

我正在尝试使用 OrientDB SQL 插入构建蓝图兼容图(比 g.addVertex 快并且没有 OutOfMemory 错误)。

创建 150 万条记录时,通过控制台(批处理)插入的时间比预期的要长(四核 i7 上为 13 分钟),并且通过“名称”字段搜索非常慢(2 分钟)。

出于测试目的,我们有一个非常简单的导入 sql 文件,它尝试创建与两个设置参数 name:account_id 和 type:account_type 以及空输入/输出数组兼容的蓝图顶点。

进口.ornt:

注意:最好能够将记录标识符设置为我们预先存在的 account_id。但我不确定如何尝试这个。

上面的 sql 最终约为 100MB,我通过控制台运行它(console.sh 包括优化-Dmvrbtree.optimizeThreshold=-1):

在这一点上,我们有了基本的 OrientDB 图形,其中 OGraphVertex 类大约有 150 万个顶点。

使用控制台,通过 Orient SQL 或 Gremlin/Pipes 进行选择需要很长时间:

使用 OrientDB SQL 或 Gremlin 大约需要 2 分钟!

作为一种潜在的解决方法,最好将记录标识符设置为来自 MySQL 数据库源的原始帐户 ID。是否可以有自定义记录 ID?

例如,由于我们会在开始遍历时知道 account_id(例如 1149400),所以理想的情况是:

0.054000 比 112.531 快很多!!

0 投票
1 回答
1211 浏览

bigdata - OrientDB GraphDatabase:@RID 的 OSQLSynchQuery 以获取 graph.getVertex(rid) ...从索引键加载顶点的最快方法?

给定带有索引“名称”(唯一或非唯一)的基本蓝图兼容 OrientGraph,如果需要,有什么建议可以改进以下内容?

注意:我找不到使用索引加载 [blueprints] 顶点的权威指南。我有一个大图,使用 has('name','bob') (在控制台中)需要 2 分钟!另一方面,基于索引的搜索以毫秒为单位返回。

到目前为止我想出的最好的:

0 投票
2 回答
567 浏览

lucene - Gremlin + Neo4j Lucene 搜索

这个 gremlin 脚本(通过 Neo4j 的 REST API 执行)是否对 lucene 索引执行排序?或者节点是否在 Neo4j 中排序?

另外两个问题:1.如何设置排序?ASC/DESC 2. 如何执行全文搜索(LIKE)。我已经尝试过 *, %,没有任何效果

0 投票
1 回答
1757 浏览

dijkstra - 使用 Gremlin 的 Dijkstra 算法

我想在 Gremlin 中实现 Dijkstra 的算法,以创建一个仅包含最短路径的全网格图。

我在 OrientDB 数据库之上使用 Gremlin。由于Furnace中的最短路径算法还没有实现,所以需要自己实现。我了解 Gremlin 的基本工作原理,但我目前坚持使用它。

我也可以用 Java 编写它,但我需要 Gremlin 解决方案的灵活性。如何才能做到这一点?

0 投票
1 回答
702 浏览

neo4j - 返回由一组公共节点连接的节点

Neo4j 中有没有一种方法,使用 cypher 或 gremlin,返回一个节点列表,这些节点之间有一组公共节点?

一个例子是

我想开始Person1说,“找到我讨厌所有我认识的人的人”,这应该返回,Person2因为Person1知道Friend2,Friend3Person2讨厌Friend2,Friend3

我从寻找联系开始,

但我似乎无法找到一种方式来表达它,以至于这个人不得不恨所有的朋友。

这可以在 Cypher 中完成吗?

0 投票
1 回答
962 浏览

groovy - Gremlin/Groovy groupCount 结果

我对groupCount使用结果节点执行更多查询感到有些困惑。我一直在 Neo4j 控制台中这样做。例如,使用 TinkerGraph 数据集:

如何m用作GremlinGroovyPipeline对象?我期待与此类似的结果:

0 投票
1 回答
636 浏览

neo4j - 在 gremlin 上使用关系索引比较慢

在 Neo4j 中,我有一个关系索引“index_e_ASSOC_sMETHdGEXP”,其中包含大约 180000 条边,所有边都有一个属性“属性”。我想做一个简单的查询,列出索引中的 200 条边,此时无论属性值如何(稍后执行查询,例如为边属性 <= 0.01 的 200 个第一边输出顶点获取相同的属性值),并从 out 节点获取一些属性值:

=713ms

从索引中获取 200 条第一条边需要262 毫秒

为什么第一个查询完成这么慢?从“预定列表”中获取 200 条边并从每个输出节点获取一些属性值应该不会花费这么长时间。当涉及到 Cypher 和 Gremlin 时,我是一个完整的新手,那么在 Cypher 或 Gremlin 中是否有更快的方法来执行此查询?

编辑:运行查询 (1) 23 次:

Edit2:我已经使用以下配置重新导入了数据库:

现在 query(1) 实际上需要更长的时间:23849 ms。它开始看起来像一个缓存问题。

数据库日志的有趣片段:

JVM参数包括

似乎垃圾收集器干扰了执行,这是为什么呢?使用 JVM 参数,我告诉服务器实例使用最大数量的 ~15GB 内存,这应该足够了。

Edit4:执行查询(1)将以下内容添加到日志中:

0 投票
1 回答
222 浏览

neo4j - 通过 Neo4j REST 在 Gemlin 中使用聚合

我通过 REST 接口使用 neo4j 1.7,并输入了以下查询:

它应该返回列表,缺少节点 1,而是返回整个节点列表。我查看了 neo4j 文档并查看了使用变量的示例,但此查询的行为似乎不如预期。

有没有其他人遇到过这个问题,或者这是不能/不应该通过 gremlin REST 接口完成的事情?

0 投票
2 回答
359 浏览

c# - 使用 Gremlin 在 Neo4J 中遍历节点但在结果中包含起始节点

我有一个代表用户的图表和他们写的一些文章。我需要创建类似活动流的东西,包括用户及其朋友撰写的文章。

http://twitpic.com/a342f4

我可以拥有所有用户朋友的帖子,如下所示:

并返回

但我还需要包含使用查询检索到的原始用户的帖子:

这返回

我怎样才能拥有所有帖子而不必进行 2 次查询然后稍后合并它们?我需要得到这样的回报:

谢谢

PD:我正在使用 Gremlin 和 Neo4jClient,但如果有人有更好的解决方案,其他的也可以,此时我仍然可以更改我正在使用的一些工具