我想要两个不同的连接节点类型节点的最小和最大长度。我有两个不同的查询,但两者都很慢,我希望它很快。
1st:>这给了我正确的答案。
g.withSack(0).V().hasLabel("People").as("from","to").
repeat(both().as("to").dedup("from","to").
sack(sum).by(constant(1))).
emit(hasLabel("People")).
sack().dedup().fold().
project("min", "max").
by(choose(count(local).is(0), constant(0), min(local))).
by(choose(count(local).is(0), constant(0), max(local)))
和
第二产品:>这使我从节点添加到长度(意味着min + 1和max + 1)
g.V().hasLabel("People")
.as("from" ,"to" )
.repeat(both().as("to").dedup("from", "to")).emit(hasLabel("People")).hasLabel("People")
.select(all, "to").count(local).dedup().as("len").fold()
.project("min", "max")
.by(choose(count(local).is(0), constant(0), min(local)))
.by(choose(count(local).is(0), constant(0), max(local)))
两个查询都执行相同的时间,但是根据neo4j cypher查询执行速度很慢。 Gremlin执行时间比密码查询多50倍。 这是密码query