在图形模型中,我有一个名为timeCategory
childs的顶点year-vertices
,month-vertices
并且day-vertices
. 我可以用 with 来识别一年,用edge-label
with来识别IS_YEAR
一个月IS_MONTH
,等等。
我想做一个查询,返回给定年份范围的所有顶点,类似于以下代码:
GremlinPipeline yearPipe = new GremlinPipeline(timeCategory).out("IS_YEAR").property("year")
.filter(new PipeFunction<Integer, Boolean>() {
public Boolean compute(Integer i)
{
return i < 2013 && i >= 2011;
}
});
for(Object v : yearPipe) {
//v is an Integer, but i need the vertex
System.out.println(v);
}
...这对于打印所有属性值(作为整数的年份)非常有用,但我需要的是所有 VERTICES 的列表,其中年份属性在给定范围之间。
我的第二个问题是关于从管道中的值进行交叉。
例如:我有三个管道,一个年管道、一个月管道和一个日管道,这些管道包含标识年、月或日的顶点。
是否有可能让所有传出顶点到一个特殊的日期......
半代码:allVertices2012-01-01 = yearpipe.out() AND monthpipe.out() AND daypipe.out
当然,我可以在一些 for-each 循环中进行一些比较,但我想知道是否有一个(简单的)gremlin - 可以做得更好的方法。