数据类型和属性序列化器配置
JanusGraph 支持多种类作为属性的值。JanusGraph 高效地序列化基本类型、基本类型数组以及 Geoshape、UUID、Date、ObjectNode 和 ArrayNode。JanusGraph 支持将任意对象序列化为属性值,但这需要定义自定义序列化器。
要为自定义属性类配置自定义序列化器,请遵循以下步骤
-
为自定义属性类实现一个自定义的
AttributeSerializer -
添加以下配置选项,其中 [X] 是自定义属性 ID,它必须大于所有已配置自定义属性的属性 ID
-
attributes.custom.attribute[X].attribute-class = [完整的属性类名] -
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 在将数据持久化到磁盘之前,会测试自定义类的序列化和反序列化。