simplePath
トラバーサーがグラフのパスを繰り返すのを防ぐために使用します。
構文
simplePath()
構文規則 | 説明 |
---|---|
小文字と大文字 | リテラル・キーワード。() を含みます。 |
Italics |
変数値。ユーザー定義値と置き換えます。 |
[] |
任意。角かっこ( [] )で任意のコマンド引数を囲みます。角かっこは入力しないでください。 |
{} |
グループ。中かっこ({} )は、選択肢を含むグループを示します。中かっこは入力しないでください。 |
| |
または。縦棒(| )で代替要素を区切ります。要素のいずれかを入力してください。縦棒は入力しないでください。 |
... |
繰り返し可能。省略記号(... )は、構文要素を必要な回数だけ繰り返すことができることを示します。 |
説明
simplePath()
ステップはフィルター・ステップです。トラバーサーがグラフ内でパスを繰り返さないことが重要な場合は、この手順を使用する必要があります。
例
エッジを繰り返さずに、お互いを知っているすべての人々の近所を拡張して検索します。
g.V().has('person', 'name', 'John Doe').
repeat(both('knows').simplePath()).
emit().
path().
by('name')
*.objects()
*.join(" > ")
注: このクエリーは、GremlinクエリーでGroovy表記(*.objects, *.join)を使用して、結果を見やすくしています。
結果:"John Doe > John Smith",
"John Doe > Jane Doe",
"John Doe > Betsy Jones",
"John Doe > John Smith > Jane Doe",
"John Doe > Jane Doe > Sharon Smith",
"John Doe > Jane Doe > John Smith",
"John Doe > Betsy Jones > Sharon Smith",
"John Doe > John Smith > Jane Doe > Sharon Smith",
"John Doe > Jane Doe > Sharon Smith > Betsy Jones",
"John Doe > Jane Doe > Sharon Smith > Jim Walsh",
"John Doe > Betsy Jones > Sharon Smith > Jane Doe",
"John Doe > Betsy Jones > Sharon Smith > Jim Walsh",
"John Doe > John Smith > Jane Doe > Sharon Smith > Betsy Jones",
"John Doe > John Smith > Jane Doe > Sharon Smith > Jim Walsh",
"John Doe > Betsy Jones > Sharon Smith > Jane Doe > John Smith"