simplePath

トラバーサーがグラフのパスを繰り返すのを防ぐために使用します。

構文

simplePath()
1. 凡例
構文規則 説明
小文字と大文字 リテラル・キーワード。()を含みます。
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"