explain
探索で使用される探索ストラテジを説明します。
構文
explain()
構文規則 | 説明 |
---|---|
小文字と大文字 | リテラル・キーワード。() を含みます。 |
Italics |
変数値。ユーザー定義値と置き換えます。 |
[] |
任意。角かっこ( [] )で任意のコマンド引数を囲みます。角かっこは入力しないでください。 |
{} |
グループ。中かっこ({} )は、選択肢を含むグループを示します。中かっこは入力しないでください。 |
| |
または。縦棒(| )で代替要素を区切ります。要素のいずれかを入力してください。縦棒は入力しないでください。 |
... |
繰り返し可能。省略記号(... )は、構文要素を必要な回数だけ繰り返すことができることを示します。 |
説明
explain()
ステップは、ターミナル・ステップです。探索の完了方法と使用しているTinkerPop探索ストラテジについて詳しく説明している探索の説明を返します
例
g.V().not(hasLabel('fridgeSensor').or().hasLabel('meal')).
group().by(label).by('name').explain()
たとえば、explain()
の返しは次のとおりです。Traversal Explanation
=======================================================================================================================================================================================================================
Original Traversal [GraphStep(vertex,[]), NotStep([HasStep([~label.eq(fridgeSensor)]), OrStep, HasStep([~label.eq(meal)])]), GroupStep(label,[TraversalMapStep(value(name)), FoldStep])]
ConnectiveStrategy [D] [GraphStep(vertex,[]), NotStep([OrStep([[HasStep([~label.eq(fridgeSensor)])], [HasStep([~label.eq(meal)])]])]), GroupStep(label,[TraversalMapStep(value(name)), FoldStep])]
RepeatUnrollStrategy [O] [GraphStep(vertex,[]), NotStep([OrStep([[HasStep([~label.eq(fridgeSensor)])], [HasStep([~label.eq(meal)])]])]), GroupStep(label,[TraversalMapStep(value(name)), FoldStep])]
MatchPredicateStrategy [O] [GraphStep(vertex,[]), NotStep([OrStep([[HasStep([~label.eq(fridgeSensor)])], [HasStep([~label.eq(meal)])]])]), GroupStep(label,[TraversalMapStep(value(name)), FoldStep])]
PathRetractionStrategy [O] [GraphStep(vertex,[]), NotStep([OrStep([[HasStep([~label.eq(fridgeSensor)])], [HasStep([~label.eq(meal)])]])]), GroupStep(label,[TraversalMapStep(value(name)), FoldStep])]
IncidentToAdjacentStrategy [O] [GraphStep(vertex,[]), NotStep([OrStep([[HasStep([~label.eq(fridgeSensor)])], [HasStep([~label.eq(meal)])]])]), GroupStep(label,[TraversalMapStep(value(name)), FoldStep])]
FilterRankingStrategy [O] [GraphStep(vertex,[]), NotStep([OrStep([[HasStep([~label.eq(fridgeSensor)])], [HasStep([~label.eq(meal)])]])]), GroupStep(label,[TraversalMapStep(value(name)), FoldStep])]
InlineFilterStrategy [O] [GraphStep(vertex,[]), NotStep([HasStep([~label.or(eq(fridgeSensor), eq(meal))])]), GroupStep(label,[TraversalMapStep(value(name)), FoldStep])]
AdjacentToIncidentStrategy [O] [GraphStep(vertex,[]), NotStep([HasStep([~label.or(eq(fridgeSensor), eq(meal))])]), GroupStep(label,[TraversalMapStep(value(name)), FoldStep])]
CountStrategy [O] [GraphStep(vertex,[]), NotStep([HasStep([~label.or(eq(fridgeSensor), eq(meal))])]), GroupStep(label,[TraversalMapStep(value(name)), FoldStep])]
LazyBarrierStrategy [O] [GraphStep(vertex,[]), NotStep([HasStep([~label.or(eq(fridgeSensor), eq(meal))])]), GroupStep(label,[TraversalMapStep(value(name)), FoldStep])]
DseIncidentToAdjacentStrategy [O] [GraphStep(vertex,[]), NotStep([HasStep([~label.or(eq(fridgeSensor), eq(meal))])]), GroupStep(label,[TraversalMapStep(value(name)), FoldStep])]
HasStepStrategy [P] [GraphStep(vertex,[]), NotStep([DsegHasStep([~label.or(eq(fridgeSensor), eq(meal))])]), GroupStep(label,[TraversalMapStep(value(name)), FoldStep])]
QueryStrategy [P] [DsegGraphStep(vertex,[],true,Unordered), NotStep([DsegHasStep([~label.or(eq(fridgeSensor), eq(meal))])]), GroupStep(label,[TraversalMapStep(value(name)), FoldStep])]
AdjacentVertexFilterOptimizerStrategy [P] [DsegGraphStep(vertex,[],true,Unordered), NotStep([DsegHasStep([~label.or(eq(fridgeSensor), eq(meal))])]), GroupStep(label,[TraversalMapStep(value(name)), FoldStep])]
DsegPropertyLoadStrategy [F] [DsegGraphStep(vertex,[],true,Unordered), NotStep([DsegHasStep([~label.or(eq(fridgeSensor), eq(meal))])]), GroupStep(label,[TraversalMapStep(value(name)), FoldStep])]
ProfileStrategy [F] [DsegGraphStep(vertex,[],true,Unordered), NotStep([DsegHasStep([~label.or(eq(fridgeSensor), eq(meal))])]), GroupStep(label,[TraversalMapStep(value(name)), FoldStep])]
StandardVerificationStrategy [V] [DsegGraphStep(vertex,[],true,Unordered), NotStep([DsegHasStep([~label.or(eq(fridgeSensor), eq(meal))])]), GroupStep(label,[TraversalMapStep(value(name)), FoldStep])]
LambdaRestrictionStrategy [V] [DsegGraphStep(vertex,[],true,Unordered), NotStep([DsegHasStep([~label.or(eq(fridgeSensor), eq(meal))])]), GroupStep(label,[TraversalMapStep(value(name)), FoldStep])]
Final Traversal [DsegGraphStep(vertex,[],true,Unordered), NotStep([DsegHasStep([~label.or(eq(fridgeSensor), eq(meal))])]), GroupStep(label,[TraversalMapStep(value(name)), FoldStep])]
さまざまなステップのコード:- [D]ecoration
- 探索ロジック内に埋め込むことが可能なアプリケーションレベルの機能があります。
- [O]ptimization
- TinkerPopレベルで、探索を表わす上でもっと効率的な方法があります。
- [P]rovider optimization
- グラフ・システム、言語またはドライバー・レベルで、探索を表わす上でもっと効率的な方法があります。
- [F]inalization
- 探索を実行する前に、最終的な調整、クリーンアップまたは分析などが必要になります。
- [V]erification
- アプリケーションまたは探索エンジンでは、違法な探索が一部あります。