gremlin-python を使用して gremlin-server に接続していますが、クエリを段階的に作成しようとしていますが、行き詰っています。次のようなクエリの最初の部分があります。
query = g.V().hasLabel('<some_label>')
今、私はこのクエリで複数のことをしたいと思っています。まず、カウントが必要です:
query.count().next()
変数を使用して何か他のことを行うとquery、カウントステップはトラバーサル上にあるため、次のようなものは機能しません。
query.out('<some_edge_label>').valueMap().toList()
ドキュメントを見ると、トラバーサルのクローンを作成する必要があるように思われるため、上記を次のように置き換えました。
query = g.V().hasLabel('<some_label>')
count_query = query.clone()
count_query.count().next()
しかし、クローンを作成したにもかかわらず、バイトコードを印刷すると、queryまだステップがあります。count()これは gremlin-python の予想される動作ですか? これは、私が話していることの完全な例であり、各ステップでバイトコードを出力しています:
query = g.V().hasLabel('alabel')
print(query)
q_count = query.clone()
print(q_count.count())
print(query)
[['V'], ['hasLabel', 'alabel']]
[['V'], ['hasLabel', 'alabel'], ['count']]
[['V'], ['hasLabel', 'alabel'], ['count']]
gremlin-python で再利用できるように、トラバーサルの開始を複製/コピーするにはどうすればよいですか?