首页 > 解决方案 > 在 gremlin 中查找连接图 DB 边的最小和最大长度

问题描述

我想要两个不同连接节点类型节点的最小和最大长度。我有两个不同的查询,但都很慢,我希望它快点。

第一:>这给了我正确的答案。

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 密码查询一样慢。Gremlin 的执行时间是 cypher 查询的 50 倍。这是密码查询

标签: python-3.xgraphneo4jgremlingremlin-server

解决方案


推荐阅读