次のコードを使用して、一意の関係を生成しています
public Relationship createRelationshipTypeWithUniqueFactory(Index<Relationship> index,
String indexableKey, final String indexableValue,
final RelationshipType type, final Node start, final Node end) {
UniqueFactory<Relationship> factory = new UniqueFactory.UniqueRelationshipFactory(index) {
@Override
protected Relationship create(Map<String, Object> properties) {
Relationship r = start.createRelationshipTo(end, type);
return r;
}
};
return factory.getOrCreate(indexableKey, indexableValue);
}
ファクトリでは、キーと値 (インデックス用) を渡す必要があるため、リレーションシップの一意性を強制できます。ただし、キーと値を構築する方法がわかりません。
次のように仮定します。
A - [知っている] -> B (A は B を知っている) ここで、A と B はプロパティの電子メール アドレスによって識別されます。
A がこのタイプの B と最大 1 つの既知の関係を持つように、この関係を一意にする必要があります。また、これにより、B が A に追加の関係を作成することを防ぐ必要があります (KNOWS 関係は双方向であるため)。
選択するのに最適な値は何ですか? 電子メール アドレスの 1 つ (たとえば、語彙的にソートされた 2 つの中で最も重要なもの)?
誰でもこれに光を当てることができますか?
乾杯、
エリック