问题标签 [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 投票
2 回答
949 浏览

neo4j - 如何为 Neo4j 图形构建自定义 Lucene 索引?

我正在使用 Gremlin 和 Neo4j 来操作来自 infochimps 的ENRON 数据集。这个数据集有两种类型的顶点,MessageEmail Addresss两种类型的边,SENTRECEVIED_BY。我想在这个数据集上创建一个自定义索引,Lucene为每个顶点创建一个文档,type: 'Message'并将来自相关顶点(例如,)的信息合并v.in()为文档v.out()中的附加字段Lucene

我正在考虑以下代码

我的问题是:

  1. 有没有更好的方法来枚举用于索引的顶点?
  2. 我可以为此使用自动索引吗?如果可以,我如何指定应该索引的内容?
  3. 我可以指定我自己的Analyzer,还是我坚持默认?什么是默认值?
  4. 如果我必须创建自己的索引,我应该为此使用 gremlin,还是使用 Java 程序更好?
0 投票
4 回答
193 浏览

neo4j - 小鬼请求

我如何向 gremlin 请求具有我选择的属性的有限节点列表?

就像是:

0 投票
2 回答
1279 浏览

groovy - Gremlin 在存储 GremlinGroovyPipeline 并在其上调用 .count() 时

这按预期工作:

当我将其存储GremlinGroovyPipeline到变量中时,我不能再count()这样做了:

这对我来说很奇怪。似乎一旦分配了变量,结果就消失了。

我在 BDB 上使用 Titan。

0 投票
2 回答
1274 浏览

neo4j - Neo4j 索引和遗留数据

我有一个想要查询的旧数据集(以 GraphML 表示的ENRON 数据)。在相关问题的评论中, @StefanArmbruster建议我使用 Cypher 来查询数据库。我的查询用例很简单:给定消息 id(Message 节点的属性),检索具有该 id 的节点,并检索该消息的发送者和接收者节点。

似乎要在 Cypher 中执行此操作,我首先必须创建节点的索引。当从 graphML 文件加载数据时,有没有办法自动执行此操作?(我曾使用 Gremlin 加载数据并创建数据库。)

我还有一个数据的外部 Lucene 索引(我需​​要它用于其他目的)。有两个索引有意义吗?例如,我可以将 Neo4J 节点 ID 索引到我的外部索引中,然后根据这些 ID 查询图形。我担心的是这些 id 的持久性。(以此类推,不应将 Lucene 文档 ID 视为持久性。)

那么,我应该:

  1. 在内部索引 Neo4j 图以使用 Cypher 查询消息 ID?(如果是这样,最好的方法是什么:用一些合适的咒语重新生成数据库以建立索引?在已经存在的数据库上建立索引?)

  2. 将 Neo4j 节点 ID 存储在我的外部 Lucene 索引中并通过这些存储的 ID 检索节点?

更新

我一直在尝试让自动索引与 Gremlin 和嵌入式服务器一起工作,但没有运气。在文档中它说

底层数据库是自动索引的,请参阅第 14.12 节,“自动索引”,因此脚本可以通过索引查找返回导入的节点。

但是当我在加载新数据库后检查图表时,似乎不存在任何索引。

Neo4j 关于自动索引的文档说需要进行大量配置。除了设置之外node_auto_indexing = true,您还必须对其进行配置

要真正自动索引某些东西,您必须设置应该索引哪些属性。您可以通过列出要索引的属性键来做到这一点。在配置文件中,使用 node_keys_indexable 和 relationship_keys_indexable 配置键。使用嵌入模式时,请使用 GraphDatabaseSettings.node_keys_indexable 和 GraphDatabaseSettings.relationship_keys_indexable 配置键。在所有情况下,该值都应该是要索引的属性键的逗号分隔列表。

那么 Gremlin 应该设置GraphDatabaseSettings参数吗?我尝试将地图传递给 Neo4jGraph 构造函数,如下所示:

但这对索引创建没有明显影响。

更新 2

我没有通过 Gremlin 配置数据库,而是使用Neo4j 文档中给出的示例,这样我的数据库创建就像这样(在 Groovy 中):

我的检索是这样完成的:

这似乎奏效了。但是请注意,getIndices()Neo4jGraph对象的调用仍然返回一个空列表。所以结果是我可以正确地使用 Neo4j API,但是 Gremlin 包装器似乎无法反映索引状态。表达式g.idx('node_auto_index')(记录在Gremlin Methods中)返回 null。

0 投票
1 回答
1095 浏览

neo4j - 为什么我会得到 No such property error: T for class: groovysh_evaluate in gremlin neo4j dbpeida?

No such property: T for class: groovysh_evaluate在关注http://markorodriguez.com/时会得到什么:

0 投票
2 回答
229 浏览

configuration - 我应该怎么做才能为 Neo4j 设置新的 Gremlin 版本?

我在用Neo4j - Graph Database Kernel 1.8

它使用这个 gremlin 版本:

这是非常旧的版本。

我想升级到github 项目gremlin 2.02.1github 项目升级,因为我无法在以下位置运行此命令gremlin 1.5

我的问题是我该怎么办,所以我不会把neo4j.

0 投票
1 回答
1025 浏览

graph - 灯泡 / Gremlin / Titan 的关键索引

我正在尝试将我的 Neo4J 应用程序移植到 Titan,但遇到了一些与索引相关的问题。我知道 Titan 不支持顶点或边缘索引,只支持“关键”索引,对吗?

我也在使用灯泡模型,例如:

添加 Person(facebook_id='111') 以检索时应该可以使用:

它不起作用,并告诉我需要在使用之前创建键索引。所以我删除了键空间并在 rexster doghouse 中手动创建了索引:

之后,用灯泡创建了 Person(facebook_id='111') 并尝试在 rexster doghouse 上检索:

并得到空洞的回应。使用 Titan 顶点 ID 获取时,它可以工作,但“facebook_id”为空并且“.map()”不起作用:

附言

  • 这是我删除键空间后创建的第一个顶点
  • 是否可以自动创建键索引?

有小费吗?

谢谢!

雷纳托·佩迪戈尼

0 投票
1 回答
253 浏览

neo4j - 如何以 graphML 格式定义索引?

我将数据导出为 graphML 格式,并希望通过 gremlin 的 graphML.import() 函数将它们导入 neo4j。我需要创建索引来索引我所有的导入数据。甚至可以使用graphML格式吗?

我的导出 xml 如下所示:

0 投票
3 回答
37943 浏览

java - 解析没有时区转换的日期

我正在使用 groovy(确切地说是遍历图形数据库的 gremlin)。不幸的是,因为我使用的是 gremlin,所以我无法导入新类。

我有一些日期值希望转换为 Unix 时间戳。它们以 UTC 格式存储为:2012-11-13 14:00:00:000

我正在使用这个片段(在 groovy 中)解析它:

问题是它进行了时区转换,结果是:

然后,如果我使用 将其转换为时间戳time(),则将其转换为 UTC,然后生成时间戳。

如何在new Date()首次解析日期时不进行任何时区转换(并且假设日期为 UTC)?

0 投票
2 回答
3370 浏览

java - 如何在 gremlin 中编写 for 循环?

如何for在 gremlin 中编写循环?就像是:

我还尝试遍历节点并在每个节点上调用一个函数,例如(count):

我的主要目标是执行一个 for 循环并打印没有inE. 这意味着它们的度数为零。