2013-05-06 94 views
0

我正在使用gremlin查詢來搜索給定頂點的頂點。如何在單個查詢中搜索頂點並創建邊?

v.both("edgeLabel").has("propertykey", "27826345"); 

該查詢返回一堆頂點。現在我正在通過簡單的迭代器從'v'創建所有返回頂點的邊。

現在我的問題是:
是否有任何進程/查詢風格可以通過,我可以尋找那些頂點和創建在 同一查詢的邊緣?

我已經嘗試此查詢:

v.both('edgeLabel').has('propertykey','27826345').gather(){g.addEdge(v,it,'TEST_LABEL')} 

但我發現了錯誤:

法無簽名:groovy.lang.MissingMethodException.addEdge()

我目前使用Gremlin-Groovy ScriptEngine從Java類執行我的查詢。

先謝謝您。

回答

1

在小鬼2.3.0,有三個新步驟:

linkIn 
linkOut 
linkBoth 

請參閱GremlinDocs(http://gremlindocs.com)有關如何使用它們的更多信息。

http://gremlindocs.com/#transform/linkboth-in-out

注意,這些管道產生sideEffect(邊緣產生的),所以如果你需要得到的邊緣,你可以蓋住管道。

+0

非常感謝您的回覆。實際上我使用的是Gremlin 2.2.0,可能這就是爲什麼我忽視了/錯過了這些。無論如何,再次感謝你幫助我。 – Pradatta 2013-05-07 17:52:08

0

您可能需要爲addEdge提供一個id。這裏是javadocs

v.both('edgeLabel').has('propertykey','27826345').gather(){g.addEdge(1,v,it,'TEST_LABEL')}

+0

那麼從Blueprint API來說,我通常會爲ID字段發送null,以便框架可以自動創建它自己的ID。但對於Gremlin查詢,我只知道有兩個方法,一個沒有id,另一個沒有id參數。 http://gremlindocs.com/#methods/graph-addedge – Pradatta 2013-05-07 06:01:44

相關問題