当前位置: 首页 > 知识库问答 >
问题:

利用cypher查询在neo4j中获取连通图

东方俊杰
2023-03-14

我正在使用REST与neo4j DB交互。

共有1个答案

凌嘉志
2023-03-14

不过不会很快。

Java中的专用算法将更快地收集这些数据。

  1. 获取所有节点
  2. 每个节点
  3. 如果它连接到一个连通图(shortestPath)的任何第一个节点,则跳过它,否则所有路径的所有结束节点的集合
MATCH (n) 
WITH COLLECT(n) as nodes
RETURN REDUCE(graphs = [], n in nodes | 
  case when 
    ANY (g in graphs WHERE shortestPath((n)-[*]-(head(g))) 
         then graphs 
         else graphs + [[p in (n)-[*0..]-() | nodes(p)[length(p)-1]]]
         end ))
 类似资料:
  • Cypher对我来说似乎比Gremlin要清楚得多,总的来说,Neo4j的家伙似乎都在和Cypher一起。但是--如果Cypher与Gremlin相比是有限的--我真的想提前知道这一点。

  • 假设我们有下面的Neo4j模式(简化了,但它显示了重要的一点)。有两种类型的节点和<代码>版本s通过关系的s可以通过关系连接。同样,这些关系有两个属性和,表示有效时间跨度-其中一个或两个可以(在Neo4j术语中不存在)表示无限。 编辑:节点和关系的有效性日期是独立的(尽管示例巧合地显示它们是对齐的)。 该示例显示了两个

  • 我是Neo4J的新手,我正在尝试为基于时空的高可用性查询建立一个概念证明。 我有一个设置,有2个独立的Neo4J企业服务器和一个运行嵌入式HA Neo4J服务器的Java应用程序。 一切都很容易设置,基本查询也很容易设置和高效。另外,按照预期执行从Neo4J SpatialRepository派生的查询。 我正在努力理解的是如何使用SDN与任何其他where子句组合进行空间查询。作为一个微不足道的

  • 假设我在Neo4j中有一个由5个节点组成的集合,这样集合中的每个节点都至少连接到集合中的另一个节点。我想从Neo4J中提取节点集合及其交互所形成的子图。目前,我使用的是一个非常原始的方法,它涉及到试图从系统中的每个节点找到与其他每个节点的匹配:

  • 我对neo4j还是个新手。我已经编写了一个小型的RESTFUL服务,它将节点作为PoC通过REST插入neo4j db(服务器)。结构如下所示:根-[节点]- n节点是“居中”的节点。我计划将其他中心节点添加为不同的节点类型(例如产品/类别/文档/属性/用户…) 在我的第一个例子中,我添加了大约。1.000个节点。现在我试图增加节点的数量,并查询这些节点。现在我面临着一种性能“问题”。这是我的查询