问题描述
我有一个顶点v,它有很多(百万)条边。每次我查询这些边缘的一小部分(1K)。我希望这些优势在每个查询中都不同。有可能吗?
解决方法
这是使用Cypher的一种方法:
month_ins <- with(df,month_ins[city_insc != "Guayaquil"])
此示例所做的假设:
- 要返回的随机关系的最大数量由
MATCH (v:Foo) WHERE v.id = 'node_with_millions_of_BAR_relationships' WITH v,[(v)-[r:BAR]->() | r] AS rels WITH v,rels,CASE WHEN $limit >= SIZE(rels) THEN 1.0 ELSE TOFLOAT($limit) / SIZE(rels) END AS pct RETURN v,CASE WHEN pct >= 1.0 THEN rels ELSE REDUCE(s = [],x IN rels | CASE WHEN SIZE(s) < $limit AND rand() < pct THEN s + x ELSE s END) END AS randomRels
parameter指定。 - 感兴趣的节点具有
limit
标签,并且感兴趣的关系是传出的并且具有Foo
类型。