neo4j - 在 Neo4j 中查找限制连接数的子图
问题描述
我需要在一个 <100 万的大型节点图上执行查询,对于给定的连接,我也想在它连接的节点上执行广度优先搜索,前提是 BFS 不会返回太多节点,否则我不想要任何返回。(我假设这些是已知的著名节点,并且彼此连接许多不同的子图。我用绿色和红色标记了我需要返回的节点和链接与我不需要的节点和链接。我猜这可能会成为APOC,但我有点迷茫。
解决方案
假设您使用以下内容来识别利益关系:
MATCH (a:Foo)-[b:BAR]->(c:Foo)
WHERE b.id = 123
这是避免返回不需要的节点的一种方法(图表左侧或右侧的节点,如果有 5 个或更多):
MATCH (a:Foo)-[b:BAR]->(c:Foo)
WHERE b.id = 123
OPTIONAL MATCH (a)--(x)
WITH a, b, c, [z IN COLLECT(x) WHERE z <> c] AS xs
OPTIONAL MATCH (c)--(y)
WITH a, b, c, xs, [z IN COLLECT(y) WHERE z <> a] AS ys
RETURN a, b, c,
CASE WHEN SIZE(xs) < 5 THEN xs ELSE [] END AS xs,
CASE WHEN SIZE(ys) < 5 THEN ys ELSE [] END AS ys
推荐阅读
- python - 在 Bottle 中为单个 API 设置 CORS 标头的正确方法是什么
- java - graphql-java-servlet 对 SimpleGraphQLServlet 的移除
- mysql - 如何在 MySQL 中删除两个字符串之间的多余空格
- node.js - MEAN Stack - Angular 只能通过域名进行通信
- sql - 根据其他列计算一列中的不同值
- laravel - 在 Laravel 中的活动 url 上动态应用“活动”类,什么是干净和可重用的方式?
- node.js - 测试节点应用程序。mocha/chai 如何调用函数来测试内部变量
- android - GET_ACCOUNTS 权限和 Google API
- php - PHP json 格式化
- python - 单击链接时使用python打开IE浏览器窗口