问题标签 [cypher]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4130 浏览

graph - Neo4j/Gremlin/Cypher:如何获取所有节点,直到我在类似地图的设置中达到一定距离(深度)?

我有一个带有字段的简单图表 - 每个字段都有 4 个邻居(东北-东南-西):

我设置了一个图形数据库(neo4j),所以这些都很好并且连接起来(就像一个网格)。我现在要做的是从一个起始节点获取所有节点,即 5 跳。

使用经典遍历,这可以正常工作,如下所示:

因此,如果我有这样的“地图”:

我用起始节点“13”和“深度”为 2 进行查询,我需要得到标记的 12 个节点——因为它们距离 13 有 2 步。

我在这个中使用了 jo4neo...

如何在 cypher 或 gremlin 中实现相同的功能?

我找到了朋友之友的例子,但这并没有真正帮助我,因为我需要将深度作为参数(即在某些情况下,我希望深度为 4,有时为 6)。

注意:除了 Fields 之外还有其他连接,但我显然只需要字段。此外,我需要获取所有连接的节点 - 而不仅仅是一个方向。

解决方案:感谢指针,我得到了解决方案:

0 投票
2 回答
2129 浏览

neo4j - 如何在 Cypher-query 中返回关系的结束节点?

以下 Cypher-Query 从匹配的关系索引中返回所有关系:

如何返回这些关系的所有端节点而不是关系本身?

我希望像

但这不起作用,因为 end (端节点)不是关系的属性。

谢谢乔格

0 投票
2 回答
633 浏览

neo4j - Neo4j 密码查询性能通过中心节点上的 REST

我对 neo4j 还是很陌生。我编写了一个小型 RESTFUL 服务,它通过 REST 作为 PoC 将节点插入到 neo4j db(服务器)。结构看起来是这样的:root - [NODES] -> n -> [NODE] -> node

n 节点是“居中”的节点。我计划将其他居中节点添加为不同的节点类型(例如产品/类别/文档/属性/用户...)

在我的第一个示例中,我添加了大约。1.000 个节点。现在我尝试增​​加节点数量并查询该节点。现在我面临着一种性能“问题”。这是我的查询,在 neo4j (1.6.1) 网络控制台上执行

START x = node(0) MATCH PATH = (x - [:NODES] -> centered - [:NODE] -> node) 返回节点 ORDER BY node.id LIMIT 10

START x = node(0) MATCH PATH = (x - [:NODES] -> centered - [:NODE] -> node) 返回计数(*)

我需要分页查询。第一个应该选择要显示的元素,第二个应该计算页面。

查询时间:1.000 个节点:~120ms 4.000 个节点:~200 - 300ms 6.000 个节点:~250 - 500ms

密码查询时间增加得非常快(在我看来)。我计划以这种方式添加 ~2.000.000 个节点。我的查询有什么问题吗?有没有可能让他们更快?(我已经将我的 neo4j 堆大小设置为 100M,对于 10k 节点应该可以)

提前致谢!

0 投票
1 回答
876 浏览

lucene - 在 Cypher 中对 neo4js lucene 索引查询进行排序

如何在 Web 控制台的密码查询中编写此示例?

这就是我到目前为止所得到的。如何添加排序?

0 投票
1 回答
493 浏览

graph - Neo4j 和 Lucene 多键查询(或者:我应该使用 Cypher 吗?)

我在 Neo4j 中有一个图,其中节点表示平面中的随机点,每个节点的坐标都存储为属性(x 和 y,值类型为double)。
我创建节点并索引它们:

现在,我需要做的是查询正方形区域中的节点。所以例如我做了这个查询:

这是回应:

如您所见,它不起作用。而且我不明白为什么(也许我需要配置索引?)。请注意,我
不必使用 Lucene。如果有一种方法可以使用 Cypher 收集该信息(从以正方形区域为中心的节点开始)实际上会更好,因为我还需要找到的节点之间的关系。

附加信息 如果这很重要,该图表示平面上随机点集上的 Delaunay 三角剖分。用更抽象的术语来说,我需要“提取”位于给定区域中的整个子图。

非常感谢任何帮助!

0 投票
1 回答
2684 浏览

neo4j - 使用密码进行 BFS 遍历

我需要使用 BFS 遍历有向无环图 (DAG)。我通过 REST API 使用 neo4j,所以我与 neo4j 通信的主要方式是使用 Cypher。

使用 Cypher,我可以从起始节点检索一组所有路径,并从中派生 BFS 遍历。

我想知道是否有更简单的方法来使用 Cypher 进行 BFS 遍历。我期望的输出将是一组节点集。

0 投票
1 回答
1908 浏览

graph - 在 Neo4j 中描述多级关系的 Cypher 查询?

我正在开发一个小型附属结构,以更好地理解图形数据库的概念,同时学习 Neo4J 并看看它能给我带来什么。我已经使用 RDBMS 多年了,Cypher 相当粗糙。我正在尝试建立一个非常简单的会员系统:

附属乔已推荐玛丽、鲍勃和马克。所以,我创建了他们所有的节点并创建了“推荐”关系。现在玛丽指的是朱莉、杰西卡和琼。鲍勃指的是比利和巴克斯特。马克指的是迈克尔和马克思。他们的推荐人不断推荐人。

对于 Joe 的原始推荐人中的每个推荐人,Joe 赚取“一代”。他的第一代是玛丽、鲍勃和马克。他的第二代是朱莉、杰西卡、琼、比利、巴克斯特、迈克尔和马克思。

现在,通过 Cypher 查询,我怎样才能发现他的世代,当然,还能发现他们的号码?他们在树上的位置?我怎么知道他的第 3 代或第 4 代是谁,他们是谁?

脑子里乱七八糟的,希望大家帮忙。

0 投票
1 回答
522 浏览

neo4j - Cypher QL 中的子查询

是否可以在 Cypher QL 中有子查询?我现在面临的问题是找到三合会。我正在使用下面的代码:

上面查询的问题是它计算了三元组两次。例如,两者
B -- A -- C

C -- A -- B
作为三元组返回。
我的计划是摆脱一个nbrl--n--nbrrxor nbrr--n--nbrl。但我想不出除了子查询之外的任何东西。非常感谢任何帮助。
更新:
发现另一个问题。考虑下图:

查询START n=node(*) MATCH triad=nbrl--n--nbrr RETURN triad返回:

0 投票
1 回答
599 浏览

python - Neo4j:基于节点属性和位置选择单个节点的查询方法是什么?

我无法评估何时使用哪种 Neo4j 查询机制(Gremlin、Cypher、遍历、内置算法)。例如,我想在整个图中选择单个节点

  • 边数最多的;
  • 在距 4 个起始节点之一的特定路径长度内;
  • 具有一定价值的财产。

我正在使用 Python neo4jrestclient,并且可以单独执行基本的 Gremlin/Cypher 脚本和遍历某些需求(例如,使用 Gremlin 计算 In/OutDegree),但我缺少关于如何组合它们的大局观。

有什么建议么?

0 投票
2 回答
261 浏览

neo4j - 了解密码输出

我有一个这样的图表: (2)<-[0:CHILD]-(1)-[1:CHILD]->(3) 用文字表示:节点 1,2 和 3(都有名字);边 0 和 1

我写了以下密码查询:

结果得到:

现在我的问题是:为什么我两次成为所有节点,三次成为关系?我只想一次全部搞定。

谢谢你的时间^^