知识库

标记为 cypher 的文章

在 Neo4j 中计算索引大小的方法。

如果需要出于容量规划目的计算 Neo4j 中索引的大小,则可以使用两种方法:1) 执行 db.indexes() 过程:CALL db.indexes() YIELD…

阅读更多

关于 OPTIONAL MATCH 的说明

OPTIONAL MATCH 与 MATCH 一样,会将模式与图数据库匹配。区别在于,如果找不到匹配项,OPTIONAL MATCH 会使用 null ...

阅读更多

使用 Cypher 实现 longestPath

虽然 Cypher 针对查找两个节点之间的最短路径进行了优化,并提供了 shortestPath() 等功能,但它没有针对最长路径提供类似的功能。在 ...

阅读更多

一组节点之间的所有最短路径

考虑任意数量的节点 A、B、C、D、E、F……我希望返回这些节点之间所有最短路径。节点之间可能存在许多边,但预计 ...

阅读更多

UNION 查询的替代方案

虽然 UNION 在某些情况下很有用,但通常可以通过对查询进行少量更改来完全避免它们。在本文中,我们将介绍几种示例情况,其中 ...

阅读更多

比较路径中的关系属性

您希望比较路径的关系属性,无论是通过全局值或参数,还是在路径内相互比较。基本模型:确保具有约束 ...

阅读更多

条件 Cypher 执行

在某些时候,您将编写一个需要一些条件逻辑的 Cypher 查询,您希望根据情况执行不同的 Cypher 语句。在此时 ...

阅读更多

交叉乘积 Cypher 查询的性能不佳

就像 SQL 一样,如果您没有正确连接查询的各个部分,它将导致交叉(笛卡尔)乘积,这很少是您想要的。以 ...

阅读更多

将数据导入云中的 Neo4j

加载云中 Neo4j 实例中的数据与使用任何其他方法运行 Neo4j 非常相似。但是,有一些小细节需要注意 ...

阅读更多

对查询结果中“消耗后”消息的解释

成功通过 Neo4j 浏览器或 cypher-shell 执行查询后,您可能会看到以下格式的消息随查询结果一起出现:这提供了以下信息:这些是 ...

阅读更多

对错误“无法使用空属性值合并节点”的解释

在运行 MERGE 时,MERGE 是 MATCH 和/或 CREATE 的组合,可能会遇到错误无法使用空属性值合并节点,如果 MERGE 是 ...

阅读更多

对错误“无法识别的交易 ID。交易可能已超时并已回滚”的解释

通过 Neo4j 事务性 Cypher HTTP 端点提交请求时,可能会遇到以下错误:此错误可能是由于交易的过期日期/时间是 ...

阅读更多

将(子)图导出到 Cypher 脚本并再次导入

您经常希望将完整的(或部分)数据库导出到文件并再次导入,而无需复制实际的数据库文件。如果您想执行后者,...

阅读更多

使用计数存储进行快速计数

Neo4j 为保存大量事物的计数元数据维护了一个事务性计数存储。计数存储用于告知查询计划程序,以便它可以做出明智的 ...

阅读更多

使用 Arcgis 进行地理编码

先决条件 创建/获取 Arcgis 帐户。在您的帐户中创建应用程序。该应用程序将被分配一个“client_id”和“secret”。APOC APOC 库提供了一个 apoc.spatial.geocode('address') 过程(以及 ...

阅读更多

如何将表示日期时间戳的属性转换为另一个时区

Neo4j 3.4 引入了时间数据类型支持,因此可以将带时区的日期时间戳作为属性值记录下来。以下 Cypher ...

阅读更多

如何显示所有没有定义标签的节点

虽然为节点分配一个或多个标签可以带来很多好处(即使用索引可以提高性能,能够将节点分组为集合等),但可以创建一个 ...

阅读更多

如何显示具有最多属性的节点

要显示具有最多定义属性的节点,请运行以下 Cypher:代表性输出类似于:输出的第一行表明存在一个名为 ...

阅读更多

如何导出浏览器中记录的 Cypher 收藏夹

Cypher 收藏夹是一些常用的 Cypher 语句,可以将其保存在 Neo4j 浏览器的左侧面板中。通过在顶部提示符中输入 Cypher ...

阅读更多

如何提高计算节点上关系数量的性能

使用 Cypher,可以按照以下方式计算关系的数量:这将报告名为 Sylvester Stallone 的 Actor 的传入/传出关系的数量。使用 bin/neo4j-shell 运行 ...

阅读更多

如何在调用 apoc.cypher.runFile 时传递参数

APOC 允许您拥有一个存储过程 apoc.cypher.runFile,然后将文件的内容运行到 Cypher 引擎中。为了允许在 ...

阅读更多

如何生成节点、关系和属性统计信息的清单

使用以下 Cypher 将生成图中节点的“清单”,以及与每个标签的节点数量、平均属性数量、最小属性数量 ...

阅读更多

如何使用 LOAD CSV 更新/设置现有节点的属性

可以使用 LOAD CSV 对现有节点进行批量更新,并创建新节点,如下所示。如果我们有一个名为 Movies.csv 的 .csv 文件,其内容为:以及……

阅读更多

如何使用连接提示避免代价高昂的遍历

在使用 Cypher 匹配模式时,要评估的可能路径数量通常与查询执行时间相关。当路径中存在超级节点(具有…)时。

阅读更多

如何避免在涉及密集节点的删除操作中使用过多的内存

在知道需要删除大量节点(以及根据规则删除其关系)的情况下,简单地使用 DETACH DELETE 和…可能很诱人。

阅读更多

如何在 Cypher 中检查时间范围重叠

Neo4j 3.4 在 Cypher 中引入了时间类型,因此现在我们也有日期、日期时间及其本地版本,以及持续时间。虽然我们没有时间类型…

阅读更多

如何从 Cypher 生成 sysinfo 输出

如果您需要从命令 :sysinfo 生成等效输出,如从 Neo4j 浏览器(http://localhost:7474)运行,可以通过运行以下 Cypher 来实现,该 Cypher…

阅读更多

如何为标签实现主键属性

从 Neo4j 2.3.x 开始,可以在标签属性上创建等效于主键的内容。例如,以下 Cypher:将创建两个约束…

阅读更多

如何编写 Cypher 查询以返回每个类别的前 N 个结果

以下 Cypher 描述了如何在整个 :Score 人口中显示前 5 个测试分数,按 field_of_study 属性细分。运行:将返回以下输出:以及…

阅读更多

导入 CSV 文件:Neo4j Aura、桌面版和沙盒版

将各种文件加载到 Neo4j 中需要不同的位置,具体取决于您使用的工具。我们将介绍的导入方法:远程:Neo4j Aura 和 Neo4j 沙盒 本地:Neo4j…

阅读更多

Neo4j 中大型删除事务的最佳实践

为了获得最佳性能并避免对系统其余部分产生负面影响,在处理大型删除时,请考虑以下最佳实践。首先确定哪种情况…

阅读更多

限制每行 MATCH 结果

由于 LIMIT 应用于查询的总行数,因此在从多个节点匹配的情况下无法使用它,因为限制必须在匹配…上。

阅读更多

Neo4j & JDBC:Neo4j JDBC 驱动程序与 BI 连接器

本页描述了 JDBC 与 Neo4j 之间的连接,以及用户何时应该使用 BI 连接器,何时应该使用 Neo4j JDBC 驱动程序。首先,让我们…

阅读更多

Neo4j:将字符串转换为日期

Neo4j 3.4 引入了时间日期类型,虽然现在有强大的内置功能,但将字符串转换为日期仍然是一个挑战。如果我们的字符串…

阅读更多

解析 json 查询日志

有时我们需要检查查询日志,以查找运行时间最长的查询和/或其他问题查询,例如缺少索引的查询或…时的查询。

阅读更多

将时间对象作为参数传递

随着 Neo4j 中对日期时间类型的支持,用户可能想知道如何或是否可以通过驱动程序将这些类型与其他数据类型一起传输。这是…

阅读更多

执行匹配交集

匹配交集是一个常见的用例,您需要搜索与一组输入节点都具有关系的节点。在本文的其余部分,我们将…

阅读更多

对多个节点执行模式否定

某些用例需要匹配与另一组节点中的任何节点都不连接的节点。我们将讨论这种查询的错误和正确方法。…

阅读更多

UNION 后处理

Cypher 不允许对 UNION 或 UNION ALL 结果进行进一步处理,因为 RETURN 在联合的所有查询中都是必需的。以下是一些解决方法。Neo4j 中的 UNION 后处理…

阅读更多

防止 Cypher 注入

什么是 Cypher 注入?Cypher 注入是一种方式,恶意格式化的输入可以跳出其上下文,并通过更改查询本身,劫持查询并执行…

阅读更多

防止服务器端请求伪造 (SSRF)

什么是 SSRF?服务器端请求伪造 (SSRF) 漏洞允许攻击者从易受攻击的 Web 应用程序的后端服务器发送精心制作的请求。犯罪分子通常使用 SSRF 攻击来攻击…

阅读更多

查询以杀死运行时间超过 X 秒且不包含特定关键字的事务

在 Neo4j 中,我们目前有一个名为 execution guard 的配置属性:可以自动设置,以杀死运行时间超过“x”秒的事务(x 等于…)。

阅读更多

重置查询基数

随着查询的执行,它们会构建结果行。Cypher 每行执行操作。当查询由完全独立的部分组成,彼此无关时,并且您不希望…

阅读更多

了解零行上的聚合

在某些情况下,Cypher 中的聚合可能很棘手。值得注意的是,在 MATCH 后执行聚合,其中没有匹配项,或在过滤掉…的过滤操作后执行聚合。

阅读更多

通过了解基数来调整 Cypher 查询

基数问题是 Cypher 查询缓慢或不正确的最常见原因。因此,了解基数并使用这种理解来管理基数问题是…的关键组成部分。

阅读更多

了解 MERGE 的工作原理

什么是 MERGE,它如何工作?MERGE 子句确保图形中存在模式。要么整个模式已经存在,要么整个模式需要…

阅读更多

了解 Neo4j 查询计划缓存

本文基于 Neo4j 2.3.2 的行为。查询计划缓存受 conf/neo4j.properties 文件中定义的三个参数控制,这些参数将在本文中详细说明。三个…

阅读更多

了解不存在的属性和使用空值

在 Neo4j 中,由于没有表模式或类似内容来限制可能的属性,因此对于节点和关系属性,不存在和空值是等效的。也就是说,实际上不存在…

阅读更多

了解查询计划缓存

当第一次提交 Cypher 语句时,Neo4j 将尝试确定查询是否在计划缓存中,然后再对其进行计划。默认情况下,Neo4j 将保留 1000 个查询…

阅读更多

了解事务和锁定超时

处理失控查询的一种方法是设定时间限制,超过时间限制后会终止查询。这里有一些细微之处需要了解才能…

阅读更多

更新节点,但返回更新之前的状态

某些用例需要更新节点(或关系)属性,但返回更新之前的节点(或关系)。您需要获取…的“快照”。

阅读更多

使用 Cypher 生成 Cypher 语句以重新创建索引和约束

以下可用于从现有数据库中提取索引定义和约束定义,并将生成的输出回放到另一个 Neo4j 数据库中。例如…

阅读更多

使用 max() 和 min() 并保留项目

max() 和 min() 的聚合函数非常有用,但有时您会发现自己与 Cypher 的聚合行为作斗争,以解决本应很简单的情况。这种情况经常发生…

阅读更多

访问 NEO4J CE 3.x 中的 neo4j-shell

从 Neo4j 3.0 开始,Windows 和 OSX 的桌面安装程序不再提供对 neo4j-shell 的访问权限。要使用 neo4j-shell,您需要从以下地址下载 TAR/ZIP 发行版:https://neo4j.ac.cn/download/other-releases/ 对于…

阅读更多

使用子查询控制聚合范围

聚合操作,例如 collect() 和 count(),在查询计划中显示为 EagerAggregation 操作符(以深蓝色标题显示)。它们类似于 Eager 操作符,因为它提供了一个……

阅读更多

为什么我的 WHERE 子句不起作用?

当 WHERE 子句似乎不起作用时,这可能很令人沮丧。您可以使用以下方法来找出问题所在。检查紧随 OPTIONAL MATCH 之后的 WHERE 子句……

阅读更多

在 Cypher 中处理连胜

在使用 Cypher 进行数据分析时,您可能会遇到需要识别或过滤某些类型的连胜情况。例如,对于运动图……

阅读更多