问题标签 [rexster]

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

titan - 如何在 Gremlin 中循环顶点并添加边缘

我试图弄清楚如何循环容器内的顶点并在循环中的当前顶点和给定顶点之间添加边。

这是我到目前为止所拥有的:这给了我一个给定容器内所有顶点 id 的数组:

结果:

现在我想循环/迭代这个数组中的所有 id,获取 id 的顶点并在给定顶点和循环中的当前顶点之间添加一条边。

任何人都知道如何做到这一点?

0 投票
1 回答
108 浏览

groovy - 如何在 Gremlin 中总结属性值?

我对 Gremlin 还是很陌生,现在花了几个小时试图弄清楚如何计算我所有顶点中给定属性的值。

这个

给我:

所以我想弄清楚的是:

  1. 如何将列表中的字符串转换为整数?我试过了...

    ...,但它不起作用。

  2. 如何总结列表中的所有值,即 3+3+...+3,而不是使用计数。

0 投票
1 回答
393 浏览

java - Titan BluePrints Rexster

修订:

我有一个独立版本的 Cassandra。我使用以下命令启动它:

我还有一个安装了 Titan Graph Library 的 Java 应用程序。要获得 TitanGraph 对象,我使用以下代码:

在此之后,我可以添加顶点/边并查询它们。我对本地 Cassandra 数据库进行了额外检查,可以验证是否有记录正在生成和持久化

当我启动 rexster-server 时出现问题。我使用以下命令以独立模式启动它:

然后我启动 rexster 控制台并加载图表。问题是图表似乎不包含数据?我真的不确定这里发生了什么。只有 1 个 Cassandra 实例正在运行。

下面是我正在使用的 rexster.xml

0 投票
0 回答
150 浏览

neo4j - Neo4j2 和 Rexster?

这感觉像是一个非常基本、愚蠢的问题。

我在 Neo4j 2.1.5 中有一个图表。这是一个玩具图,所以它是使用默认值创建的。

我按照说明构建了 Neo4j2 版本的蓝图。我可以让 Rexster 从这个配置开始:

当我打开 Rexster 网络界面时,它说图形在那里,但是当我尝试浏览它时,没有骰子。从 Neo4j Web 界面浏览我的图表没有问题。我错过了什么?

0 投票
1 回答
130 浏览

groovy - 在 Rexster 控制台中获取异常回溯和输出

我有一个使用 Rexster 运行的 Titan 0.5.2 的设置。当我使用 rexster 控制台在 Titan 端运行一些代码并发生异常时,我只收到如下短消息:

==>处理语言 [groovy] 的脚本时出错。会话中所有图表的所有事务都以失败结束:java.util.concurrent.ExecutionException:javax.script.ScriptException:javax.script.ScriptException:groovy.lang.MissingPropertyException:没有这样的属性:a for class:Script8

并且脚本的输出(使用 println 等生成)是不可见的。是否可以让 rexster 控制台产生异常回溯(例如,像 Titan 的 gremlin 控制台那样)并查看脚本的输出?

0 投票
1 回答
64 浏览

titan - 如何使用数字属性发布/放置边缘?

我正在使用 Rexster 将数据加载到 TitanDB 中。发布/放置顶点时,我可以在请求正文中提供 JSON 形式的属性。如果一个属性的值是一个数字,它将相应地存储为一个数字,并且可以这样检索。例如,以下正文将在 post 消息中创建一个 number 类型的属性“score”:

但是,当发布/放置边缘时,似乎属性只能作为查询参数提供,例如:

在这种情况下,不幸的是,5 总是被认为是一个字符串:“5”。因此,包括数字运算/比较在内的查询不起作用。例如,以下查询仍将返回发布的边(尽管发布的分数为 5):

有没有办法 POST / PUT 边缘及其属性,以便考虑数字类型?

0 投票
1 回答
76 浏览

java - 详细的 Rexster 输出/记录错误`null`

我在一个大小为 3 的小型 Ubuntu 服务器云中使用 Titan,并将 Rexster 扩展部署到$TITAN_HOME/ext. 但是,如果我尝试调用我得到的扩展的端点

这不是很有帮助。如何获得更详细的输出以查看这里出了什么问题?此外,错误null对我来说似乎很奇怪。有什么想法会导致它吗?

编辑:我将导致错误的扩展的整个执行包装在 try-catch-everything 块中:

但不断得到

在客户端。rexstitan.log包含有关这些错误的警告:

很高兴知道,但不是很详细。

0 投票
1 回答
1020 浏览

java - 泰坦节点没有出现

我有一个0.5.0带有 8 个节点的小型 Titan 集群。每个节点都在 Rexster2.5.0和 Cassandra 中运行 Titan。它们都配置相同。不幸的是,几乎所有时间他们中的一个都无法启动。
在大多数情况下,这是种子节点之一。

使用cassandra作为存储后端,我在 Rexster/Titan 日志中得到以下信息。

Rexster 确实无法启动,因此没有加载图表。但是,Rexster 无法连接的 Cassandra 节点似乎没问题:nodetool将该节点列为环的一部分。如果我对剩余的 Rexster 实例发起请求,一切似乎都正常。

我在启动节点之前擦除了所有数据。

我切换到cassandrathrift导致类似的异常(由 TimeoutException 引起的 PermanentBackendException 引起的相同 TitanException)。Rexster 中的存储超时为 30 秒。这可能太低了,因为我现在同时启动所有节点,但没有解释cassandra.

这里出了什么问题?

编辑

我在滥用泰坦。为了不必在启动时处理索引创建——这在我的例子中经常发生——我在 Rexster 扩展中创建了索引。我认为这段代码被多次调用:当我同时启动多个节点时,似乎其中一些节点试图创建索引。

问题:扩展有什么方法可以安全地创建索引?我为此创建了一个单独的线程:创建索引的方法是什么?

我将存储超时增加到 60 秒,并在从代码中删除索引创建后重试了该过程。我仍然同时启动所有节点。一个 Rexstitan 节点(种子节点 #2)再次无法启动。

Cassandra 日志确实包含异常

我可以在两个种子节点中看到。虽然一个种子节点上的 Rexster 似乎并不关心另一个 Rexster 实例无法启动

rexstitan.log. 听起来与之前提出的异常非常相似。

澄清一下:失败是指 Rexster 已启动并且可以查询但未能加载 Titan 图“图”。

也许我必须将大小减小到最小,以检查这是否与集群大小有关。

编辑#2

它与集群大小无关。它变得非常烦人。有时是BadRequestException上述情况,有时是BadRequestException因为已经有一个键空间“泰坦”。或者它是一个IllegalArgumentException

一次启动多个节点是不可能的,它们会冲突吗?这是我能想到的唯一原因,因为我可以得到任何异常,有时它工作正常。

0 投票
1 回答
116 浏览

indexing - 创建索引的方法有哪些?

我在 Titan 文档中找到的每个示例都使用 Rexster 控制台创建索引。您登录到单个 Titan 节点,创建索引并提交。一段时间后,整个集群都知道索引并且可以使用它。

我想知道是否还有其他方法可以做到这一点。从代码创建索引时有一些好处,例如在 Rexster 扩展中:我将 ENUM 用于属性键和边缘标签,这些标签提供了toString可用于创建索引的方法。这样就不用担心值改变了。

另一个要提到的方面是我对 Titan 进行了基准测试,因此经常重新初始化集群。让代码为我完成所有工作比登录节点并手动完成要舒服得多。

但是,在使用最终一致的存储后端时,从代码创建索引似乎是一团糟,并且会导致多个异常。我认为由于我同时启动节点,多个节点试图创建索引。有关详细信息,请参阅Titan 节点未出现

有没有适当的方法来处理这些问题?还有其他我不知道的方法吗?

0 投票
1 回答
282 浏览

cassandra - Rexster 拒绝以扩展名开始但不显示错误

我有一个使用 Cassandra 的小型 Rexster/Titan 集群。Rexster 扩展用于查询图形。我做了一些基准测试,并多次启动和停止 Rexster/Titan。但是现在我遇到了一个奇怪的问题:Rexster 拒绝启动但没有显示任何错误消息。

我试图找出造成这种情况的原因并将集群减少到单个节点192.168.0.4

如果我删除我的扩展 Rexster 设法启动。

但是当我将我的扩展 uber JAR 放在extRexster 拒绝启动的文件夹中时。

如果我现在rexstitan.log按照控制台输出的建议进行检查,则找不到任何错误消息。

唯一让我觉得奇怪的条目是关于日志的条目:

我的异常使用记录器进行调试。您可以在 github 上查看实例化用法:https ://github.com/sebschlicht/titan-graphity-kribble/blob/master/src/main/java/de/uniko/sebschlicht/titan/extensions/GraphityExtension.java# L22

虽然 Rexster 无法启动,但控制台中显示 PID 的进程却curl无法连接到 Rexster:

为什么 Rexster 不抛出异常?我该如何调试这种情况?

编辑:我删除了代码中的所有日志消息。我删除了启动期间可能引发的所有异常。Rexster 仍然拒绝从我的扩展开始,日志文件中唯一的提示是未识别的读取标记。我必须知道是什么阻止了 Rexster 启动。