问题标签 [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 投票
4 回答
2194 浏览

indexing - neo4j 在 200K 节点和 450K 关系上计算节点性能

我们正在开发一个基于的应用程序,大约有200k个节点,每个节点都有一个属性,例如type='user'type='company' 表示我们应用程序的特定实体。我们需要获取图中特定类型的所有节点的计数。

我们为每个实体创建了一个索引,例如userscompanies它包含该属性的节点。所以内部users索引驻留130K节点,其余在companies.

使用 Cypher,我们可以像这样查询。

结果是

服务器配置为默认值,稍作调整,但 4 秒也满足我们的需要。认为数据库会在 1 个月内增长 20K,所以我们非常非常需要这个查询执行。

有没有其他方法可以做到这一点,也许使用 Gremlin,或者使用其他服务器插件?我会缓存这些结果,但我想知道是否可以调整它。

非常感谢,对不起我糟糕的英语。

0 投票
1 回答
3868 浏览

neo4j - 组合 Cypher 查询结果

这是我在 Cypher 中的查询...

我正在尝试将朋友添加到外部集合并返回查询内部的集合。这样我就可以在查询中使用 LIMIT 和 SKIP 。

任何帮助,将不胜感激。

克里斯

0 投票
1 回答
720 浏览

neo4j - neo4j REST“服务器遇到麻烦”

我正在运行一个非常基本的测试来检查我的理解并评估 neo4j REST 服务器(neo4j-community-1.8.M07)。我正在使用 Neo4j Python REST 客户端

每次测试迭代都以源节点名称和目标节点名称的随机字符串开始。这些名称只包含字母a..z和数字0..9(奇怪的是,如果我使用A..Zand ,我从来没有让它失败0..9)。该名称的长度可以从 1 个字符到 36 个字符,并且没有重复的字符。我创建了 36 个节点,其中第一个节点名称只有一个字符长,第 36 个节点名称有 36 个字符。然后我在所有节点之间创建关系。每个关系的名称是源节点名称和目标节点名称的串联。最终图有 37 个节点(1 个参考节点和 36 个节点,名称从 1 个字符到 36 个非重复字符)和 1260 个关系。在每次测试迭代之前,我都会清除图表,以便它只有一个(参考)节点。

问题是经过几次成功的迭代neo4j REST服务器崩溃:

发送的数据无效

导致系统崩溃的查询可能不同 - 这是导致问题的 query_string 示例:

我花了很多时间试图找到一种趋势,但徒劳无功。如果我对查询做错了什么,那么任何测试都不会起作用。我观察到在 5 到 25 轮之间成功的测试周期数会发生崩溃。

什么可能导致 neo4j REST 服务器崩溃?

PS 一些细节...

节点是这样创建的:

以防万一 - 在发出查询以创建新关系之前,我检查图表以确保源节点和目标节点存在。该检查从未失败。

0 投票
4 回答
4439 浏览

logging - 记录 spring neo4j 的密码查询

我尝试使用以下 log4j 配置记录由 spring data neo4j 生成的密码查询:

但是,我看不到日志中显示了密码查询。有人对调查为 spring neo4j 数据映射生成的密码查询的方法有什么想法吗?

0 投票
2 回答
2410 浏览

neo4j - Neo4j Cypher:在 WHERE 子句中查找与数组节点属性的完全匹配

给定具有数组属性的 Neo4J 节点,如何创建 Cypher 查询以仅返回与数组文字匹配的节点?

使用控制台,我创建了一个带有名为“list”的数组属性的节点:

但是,我的查询不会返回刚刚创建的节点,因为它有一个匹配数组文字的 WHERE 子句:

我完全有可能误用了 Cypher。在 Cypher 中进行精确数组属性匹配的任何提示都会有所帮助。

0 投票
1 回答
249 浏览

neo4j - Neo4j Cypher 1.8 版:关系标识符的可能错误

http://console.neo4j.org/r/yx62bk

在上图中,查询

将 o 返回为空。

更改查询以删除关系标识符 - objectScore

并且输出正确返回 o 节点。

对于我的场景,我需要它们。不知道该怎么做?对此有任何建议。

0 投票
1 回答
713 浏览

neo4j - 具有多个起始节点的 neo4j 密码性能

http://console.neo4j.org/r/8mkc4z

在上面的grpah中,查询的目的

就是找到 m,这样 Neo 知道 m,m 知道 Cypher。

通过以下查询也可以实现相同的目的 -

第一个使用 where 条件,第二个使用多个起始节点。

从性能的角度来看,哪一个应该运行得更快,并且可能在什么场景下运行。

我遇到了多个起始节点的性能问题,而我认为,逻辑上将其作为起始节点而不是条件应该更快的地方。

是否有根据不同场景使用哪种方法的规则。

0 投票
1 回答
3391 浏览

neo4j - 在单个 Cypher 查询中返回两个聚合?

在获取两个值的总和并找到差异方面,我一直在与 Cypher 进行一些斗争。我有这两个查询,它们查找节点的发送总数和接收总数:

基本上我的问题是 - 我如何结合这两个单独的查询,以便我可以区分 Total_Sent 和 Total_Received?我尝试了多个起点,如下所示:

但 Total_Received 为空!对我来说,这看起来像是一个非常简单的用例——我到底做错了什么?

0 投票
2 回答
1213 浏览

regex - Neo4j 数字属性的正则表达式匹配

我有几个节点共享一个具有数值的属性。我想使用正则表达式过滤此属性。这可以使用 Cypher 查询语言吗?

例子:

如何获取num属性包含数字的所有节点3(应返回 A、C 和 D)。我试过类似的东西n.num =~ '3',但它会导致错误(“ java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.String)”)

有任何想法吗?

0 投票
2 回答
1366 浏览

neo4j - 一个非常基本的 Neo4J 密码不工作

关于 Neo4j,我是菜鸟。我一直在尝试通过使用网站管理员中的控制台来学习 Cypher。但似乎有一些我不知道的怪癖,或者配置设置不正确。

例如:在以下 URL 处,提供了一个非常简单的 Cypher(参见下面的代码) http://docs.neo4j.org/chunked/1.7.2/shell-commands.html#_query_with_cypher

当我在 Neo4j 管理网站的控制台上执行以下 Cypher 时,出现错误:

但是,如果我执行以下 Cypher。请注意,我在“(0)”之前添加了“节点”。一切正常:

似乎我看到的许多例子在类似的场景中都没有包含“节点”这个词。这应该是预期的还是我做错了什么?

我在 Windows Server 2008 上运行 Neo4j 版本 1.7.2。