我的应用程序有英文过滤器,我需要将这些过滤器转换为Gremlin查询 . 每个过滤器由三部分组成:
-
顶点类型
-
#1中顶点的传出边的标签
-
#2中来自边的传入顶点的名称
任何部分都可以使用字符串“any”,这表示任何类型,标签或名称都可以包含在结果中 . 以现代玩具图为例,我有以下两个过滤器:
-
人 - >创建 - >任何
-
人 - >知道 - > vadas
评估上述两个过滤器的结果应该是:
-
marko - > created - > lop
-
marko - > knows - > vadas
而以下两个过滤器:
-
人 - >任何 - > josh
-
person - > created - > lop
应评估以下边缘:
-
marko - >知道 - > josh
-
marko - > created - > lop
我得到的结果与上述期望结果最接近的结果是:
g.E().and(outV().outE().has(label, "created"), outV().outE().has(label, "knows").inV().has("name", "vadas"), outV().has(label, "person"))
上述查询的问题在于它返回从marko出来的所有三条边,而不仅仅是两条所需的边 . 如何改进我的查询以仅返回如上所述的两个边?
1 回答
此解决方案采用将过滤器与返回结果的遍历分开的方法 .