我想實現一個查詢和圖形可視化框架,允許用戶輸入一個Gremlin查詢,返回一個D3圖形的結果。 D3圖形使用JSON構建 - 這是使用獨立的頂點和邊緣從Gremlin查詢輸出創建的。對於簡單的查詢,如:複雜的Gremlin查詢輸出節點/邊
g.V.filter{it.attr_a == "foo"}
這工作正常。然而,當我嘗試執行更復雜的查詢,如下列:
g.E.filter{it.attr_a == 'foo'}.groupBy{it.attr_b}{it.outV.value}.cap.next().findAll{k,e->e.size()<=3}
- Find all instances of *value*
- Grouped by unique *attr_b*
- Where *attr_a* = foo
- And *attr_b* is paired with no more than 2 other instances of *value*
相反,輸出如下形式:
attr_b1: {value1, value2, value3}
attr_b2: {value4}
attr_b3: {value6, value7}
我想知道是否有一種方法Gremlin將結果輸出爲節點和邊的列表,以便我可以將結果顯示爲圖形。我知道我可以編輯我的D3代碼來接受這個新的輸出,但是目前對查詢的類型/複雜性沒有限制,所以每次鍵/值對不一定是相同的。
謝謝。
感謝您的回覆。在回答你的問題時,我的「值」是節點的屬性,而我的「attr_a」和「attr_b」是邊的屬性,所以本質上我希望D3顯示一個包含所有節點和邊的圖,屬性匹配Gremlin的輸出。我同意Gremlin沒有辦法轉換這個內置的輸出,所以我可能會設計我的查詢,所以「value」的類型總是相同的,並且編寫第二個Gremlin腳本來拉出相關的頂點/第一個輸出的邊緣。 我會發布更新,如果我有任何進展,歡呼聲。 – adaml288