跳到内容

数据类型和属性序列化器配置

JanusGraph 支持多种类作为属性的值。JanusGraph 高效地序列化基本类型、基本类型数组以及 GeoshapeUUIDDateObjectNodeArrayNode。JanusGraph 支持将任意对象序列化为属性值,但这需要定义自定义序列化器。

要为自定义属性类配置自定义序列化器,请遵循以下步骤

  1. 为自定义属性类实现一个自定义的 AttributeSerializer

  2. 添加以下配置选项,其中 [X] 是自定义属性 ID,它必须大于所有已配置自定义属性的属性 ID

    1. attributes.custom.attribute[X].attribute-class = [完整的属性类名]

    2. attributes.custom.attribute[X].serializer-class = [完整的序列化器类名]

例如,假设我们想要注册一个名为 SpecialInt 的特殊整数属性类,并实现了一个实现 AttributeSerializer 的自定义序列化器 SpecialIntSerializer。我们已经在配置文件中配置了 9 个自定义属性,因此我们将添加以下行

attributes.custom.attribute10.attribute-class = com.example.SpecialInt
attributes.custom.attribute10.serializer-class = com.example.SpecialIntSerializer

自定义对象序列化

JanusGraph 支持任意对象作为属性值,并可以将此类对象序列化到磁盘。为了使此默认序列化器适用于自定义类,必须满足以下条件

  • 该类必须实现 AttributeSerializer

  • 该类必须有一个无参数构造函数

  • 该类必须实现 equals(Object) 方法

最后一个要求是必需的,因为 JanusGraph 在将数据持久化到磁盘之前,会测试自定义类的序列化和反序列化。