2014-02-07 46 views
1

我正在使用Titan Graph Database。假设我有一个顶点V,其ID为VID,并且有10K个顶点连接到它v1,ID为v1id,v2有ID v2id ................... v10000,ID为v10000id。泰坦:图中的范围查询

现在我想分页获取邻居顶点,即每次调用10个顶点细节。

它应该支持nextprevious的结果。我看到了limit(),但它只是限制返回结果的数量。我看到THIS SO,似乎接近我所需要的,但在Titan那里有一些范围类型的东西,我可以通过开始顶点编号和我想要的结果数量?

回答

3

随着小鬼,你可以通过指数范围:

// for the second ten links 
    g.v(1).outE.has('time',T.gte, fiveDaysAgoInMs)[10..19] 

    // for the previous ten links 
    g.v(1).outE.has('time',T.gte, fiveDaysAgoInMs)[0..9] 

    // for the next ten links 
    g.v(1).outE.has('time',T.gte, fiveDaysAgoInMs)[20..29] 

    // for one link only 
    g.v(1).outE.has('time',T.gte, fiveDaysAgoInMs)[0..<1] 

来源:GremlinDocs

在Java代码:

Graph g = ... // a reference to a Blueprints graph 
GremlinePipeline pipe = new GremlinPipeline(); 

Long DAY_IN_MS = 1000 * 60 * 60 * 24; 

// first 10 
pipe.start(g.getVertex(1)).outE().has("time", Tokens.gte, new Date(date.getTime() - (5 * DAY_IN_MS))).range(0, 10)); 

// if you want next 10 
pipe.next(10); 

来源:GremlinPipelineUsing Gremlin though Java

+0

我该怎么办同样使用java代码? – manish

+0

用Java代码更新 – MarcoL

+0

'DAY_IN_MS'什么是它的值 – manish