0

次のコードを使用して、一意の関係を生成しています

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 つの中で最も重要なもの)?

誰でもこれに光を当てることができますか?

乾杯、

エリック

4

1 に答える 1