1

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

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

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

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

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

4

1 回答 1

1

在实践中,我认为没有多少人通过在控制台中手动输入内容来创建他们的模式。我通常创建一个Schema有一些方法来完成这项工作的类。这样,我可以按照您描述的方式使用枚举、静态字符串变量等。该类非常有用,因为它Schema代表了我的 Titan 模式在任何给定时间的版本化实例,我可以在很多地方重用它(手动初始化生产实例,在单元测试之间构建模式,使用它到一个 groovy 脚本中,用于在您的构建服务器上实现自动化等)

对于 Titan,Schema该类对于开发和维护自定义 Gremlin DSL 的概念非常重要。如果您尚未阅读此主题的博客文章,您可能会发现它很有趣。

于 2015-01-23T13:20:38.893 回答