2016-09-27 115 views
1

什麼是查詢以下的最佳方法:如何查詢頂點與多個邊緣

​​

1按鈕,3個用戶,每個用戶都有多條邊,各種t_dates,與顏色的按鈕紅。只有1個紅色按鈕,但用戶和交互將以百萬計。我假設有按鈕作爲出發點是要走的路。所有屬性有正確的索引來支持範圍查詢等誰碰日期A和B之間按鈕的用戶

  1. 計數
  2. 伯爵誰日期Z和Y之間觸動按鈕,並沒有觸及它的用戶日期A和B之間
  3. 伯爵誰日期A和B之間,也與日期Z和Y.

謝謝觸摸操作的按鈕的用戶!誰日期A和B.

g.V().has("Button", "color", "red"). 
    inE("Touched").has("t_date", between(A, B)).outV().dedup().count() 

伯爵誰日期Z和Y之間的觸摸操作的按鈕和日期之間沒有觸及它的用戶之間觸動按鈕的用戶

回答

0

計數乙

g.V().has("Button", "color", "red").as("b"). 
    sideEffect(inE("Touched").has("t_date", between(A, B)).inV().aggregate("x")). 
    inE("Touched").has("t_date", between(Y, Z)).inV().where(without("x")).dedup().count() 

計數是誰日期A和B之間,也Y.日期間Z和

g.V().has("Button", "color", "red").as("b"). 
    sideEffect(inE("Touched").has("t_date", between(A, B)).inV().aggregate("x")). 
    inE("Touched").has("t_date", between(Y, Z)).inV().where(within("x")).dedup().count() 

您可以刪除dedup()如果只能有一個用戶和按鍵之間的一個邊緣觸摸操作的按鈕的用戶。我唯一擔心的是「用戶和交互會達到數百萬」。你的模型不會擴展,遍歷數百萬的邊緣將不會很好(如果有的話)。

相關問題