RedisGraph当前是否支持匹配交集查询?含Cypher查询示例问询
RedisGraph交集查询相关问题解答
嘿,我来帮你梳理这两个问题的答案:
1. RedisGraph是否支持匹配交集查询?
当然支持啦!RedisGraph对标准Cypher语法的兼容性很不错,像这种需要找出多个节点共同关联的交集结果的场景,完全可以通过聚合函数搭配条件筛选来实现,和你熟悉的其他主流图数据库思路一致。
2. 在RedisGraph中如何实现指定的交集查询?
你给出的Cypher脚本逻辑完全可以在RedisGraph中直接运行,不需要做任何特殊修改。我把完整的可执行脚本贴出来,顺便拆解下逻辑:
MATCH (p:Person)-[x:VISITED]->(c:Country) WHERE p.name = 'Mor Yesharim' OR p.name = 'Noam Nativ' WITH c, count(DISTINCT p) as cnt WHERE cnt = 2 RETURN c
简单解释下逻辑:
- 首先通过
MATCH语句定位到名为Mor Yesharim和Noam Nativ的两个人物节点,以及他们访问过的所有国家节点; - 接着用
WITH将每个国家节点和对应的不同访问者数量做聚合; - 最后筛选出访问者数量等于2的国家,这就是两个人都去过的交集结果了。
RedisGraph完全支持count(DISTINCT ...)这类聚合操作,所以这个脚本可以直接在RedisGraph环境中执行,得到你想要的结果。
内容的提问来源于stack exchange,提问作者user1458424
相关产品推荐
相关产品推荐

