インデックスの作成
グラフのインデックスの作成。
name
で示すように、複数の頂点ラベルで使用できます。グラフ探索は、「インデックスの使用」で示すように、頂点ラベルおよびプロパティ・キーの両方が指定された場合はインデックスのみを使用します。グラフ内のすべての頂点ラベルにまたがるインデックスは、DSE Graphでサポートされていません。手順
-
セカンダリ・インデックスを作成します。
schema.vertexLabel('recipe').index('byRecipe').secondary().by('name').add()
インデックスの頂点ラベルおよびプロパティ・キーを、
vertexLabel()
ステップおよびby()
ステップでそれぞれ識別します。index()
ステップでインデックスに名前を付けます。secondary()
ステップは、インデックスをセカンダリ・インデックスとして識別します。 -
マテリアライズド・ビュー・インデックスを作成します。
schema.vertexLabel('author').index('byAuthor').materialized().by('name').add()
インデックスの頂点ラベルおよびプロパティ・キーを、
vertexLabel()
ステップおよびby()
ステップでそれぞれ識別します。index()
ステップでインデックスに名前を付けます。materialized()
ステップは、インデックスをマテリアライズド・ビュー・インデックスとして識別します。 -
サーチ・インデックスを作成します。サーチ・インデックスには1つのプロパティ・キーがインデックス指定されています。複数のプロパティ・キーがインデックス指定されている場合は、追加の
by()
ステップを連結します。schema.vertexLabel('recipe').index('search').search().by('instructions').asText().add()
インデックスの頂点ラベルおよびプロパティ・キーを、
vertexLabel()
ステップおよびby()
ステップでそれぞれ識別します。index()
ステップでインデックスsearch()
に名前を付けます。使用できるのは、この命名規則のみです。search()
ステップは、インデックスをサーチ・インデックスとして識別します。このインデックスは、全文インデックスを使用して検索されます。 -
サーチ・インデックスは文字列インデックス・オプションも指定できます。次の例では、文字列インデックスを識別します。
schema.vertexLabel('recipe').index('search').search().by('instructions').asString().add()
asString()
も、使用可能なサーチ・インデックス・オプションです。 -
さらに一般的には、サーチ・インデックスは複数のカラムを指定します。
schema.vertexLabel('recipe').index('search').search().by('instructions').asText().by('name').asString().add()
各プロパティには、
asText()
またはasString()
のどちらかを指定できます。指定されていない場合、デフォルトはasText()
です。 -
辺インデックスを作成します。辺インデックスは、特定の頂点ラベルに対する頂点中心インデックスです。たとえば、次の例では、レビュー担当者が評価するものをインデックス作成します。
schema.vertexLabel('reviewer').index('ratedByStars').outE(rated).by('stars').add()
インデックスの頂点ラベルおよびプロパティ・キーを、
vertexLabel()
ステップおよびby()
ステップでそれぞれ識別します。index()
ステップでインデックスに名前を付けます。outE()
ステップは、辺の方向を定義するために使用されます。 -
プロパティ・インデックスを作成します。プロパティ・インデックスは、特定の頂点ラベルに対する頂点中心インデックスです。
schema().vertexLabel('author').index('byLocation').property('country').by('livedIn').add()
インデックスの頂点ラベルおよびプロパティ・キーを、
vertexLabel()
ステップおよびproperty()
ステップでそれぞれ識別します。index()
ステップでインデックスに名前を付けます。by()
ステップは、プロパティのメタプロパティを定義するために使用されます。. -
インデックス作成を確認します。
schema.describe()
-
頂点ラベルを指定し、
describe()
ステップを使用すると、インデックスに関する詳細情報が表示されます。インデックスの作成に使用できるスキーマが表示されます。schema().vertexLabel('author').describe()
==>schema.vertexLabel("author").properties("name", "gender", "nationality").create() schema.vertexLabel("author").index("byName").secondary().by("name").add() schema.vertexLabel("author").index("byAuthor").materialized().by("name").add()
-
すべての
vertexIndex
をフィルターするスキーマ探索を使用すると、すべてのインデックスに関する情報が表示されます。schema.traversal().V().hasLabel('vertexIndex').valueMap()
==>{name=[byName], type=[Secondary]} ==>{unique=[false], name=[byIngredient], type=[Materialized]} ==>{unique=[false], name=[byReviewer], type=[Materialized]} ==>{unique=[false], name=[byRecipe], type=[Materialized]} ==>{unique=[false], name=[byMeal], type=[Materialized]}
-
すべての
vertexIndex
をフィルターするスキーマ探索を使用し、インデックス数のカウントを取得します。schema.traversal().V().hasLabel('vertexIndex').count()
==>5