インデックス - エッジ・インデックス
エッジ・ラベルの作成方法。
構文
index('index_name').[outE('edgeLabel') | inE('edgeLabel') | bothE('edgeLabel')].by('propertykey_name').add()
説明
エッジ・インデックスは、DSE Graphでエッジ・プロパティ・キーを使用して作成されたインデックスを指定します。頂点ラベルを指定する必要があります。エッジ・インデックスは頂点ラベルとの関係でのみ定義されます。インデックス名は一意でなければなりません。
エッジ・インデックスは、頂点ラベルからの外向きエッジ(outE()
)、頂点ラベルからの内向きエッジ(inE()
)、またはその両方(bothE()
)を使用して作成できます。最後のタイプbothE()
が使用されることはまれですが、インデックスが特定の頂点ラベルから内向きエッジと外向きエッジの両方を追跡する必要がある場合に使用されることがあります。例としては、周りから気に入られているだけでなく、他のレビュー担当者も気に入っているレビュー担当者を格納するグラフが挙げられます。周りから気に入られているだけでなく、特定のレビュー担当者も気に入っているレビュー担当者を検索するには、内向きエッジと外向きエッジの両方を検索します。
例
プロパティ・キー
stars
を使用してoutE
エッジ・ラベルを持つインデックス ratedByStars
を作成します。頂点ラベルはreviewer
として指定されます。schema.vertexLabel('reviewer').index('ratedByStars').outE('rated').by('stars').add()
プロパティ・キー
year
を使用してbothE
エッジ・ラベルを持つインデックス ratedByStars2Way
を作成します。エッジ・インデックスと使用すると、特定の年のレシピと特定の年にレビューをしたレビュー担当者の両方を検索するクエリーを実行できます。schema.vertexLabel('recipe').index('byAuthOrRecipe').bothE('created').by('year').ifNotExists().add()
これにより、2つのインデックスが置き換えられます。schema.vertexLabel('recipe').index('toRecipesRated').inE('rated').by('year').add()
schema.vertexLabel('reviewer').index('toReviewersWhoRated').outE('rated').by('year').add()