知识库

标记为 cypher 的文章

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

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

阅读更多

关于 OPTIONAL MATCH 的说明

OPTIONAL MATCH 与 MATCH 一样,用于在图数据库中匹配模式。区别在于,如果没有找到匹配项,OPTIONAL MATCH 将使用 null 值表示…

阅读更多

使用 Cypher 实现最长路径

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

阅读更多

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

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

阅读更多

UNION 查询的替代方案

虽然 UNION 在某些情况下很有用,但通常可以通过对查询进行小幅更改来完全避免它们。本文将介绍几种可以…

阅读更多

比较路径中的关系属性

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

阅读更多

条件 Cypher 执行

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

阅读更多

笛卡尔积 Cypher 查询性能不佳

与 SQL 类似,如果您没有正确连接查询的各个部分,将导致产生笛卡尔积,这通常不是您想要的结果。例如…

阅读更多

将数据导入云端 Neo4j

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

阅读更多

查询结果中“consumed after”消息的解释

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

阅读更多

错误“Cannot merge node using null property value for”的解释

在运行 MERGE(MATCH 和/或 CREATE 的组合)时,如果 MERGE 语句…,可能会遇到“Cannot merge node using null property value for”错误。

阅读更多

错误“Unrecognized transaction id. Transaction may have timed out and been rolled back”的解释

通过 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 的演员的入站/出站关系数量。使用 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 生成 sysinfo 输出

如果您需要生成与从 http://localhost:7474 的 Neo4j 浏览器运行命令 :sysinfo 相同的输出,可以通过运行以下 Cypher 来实现。对此…

阅读更多

如何为标签实现主键属性

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

阅读更多

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

以下 Cypher 描述了如何显示整个 :Score 总体中按 field_of_study 属性划分的前 5 个测试分数。运行:将返回以下输出:以及…

阅读更多

导入 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,您需要从:https://neo4j.ac.cn/download/other-releases/ 下载 TAR/ZIP 分发包。对于…

阅读更多

使用子查询控制聚合范围

聚合函数(如 collect() 和 count())在查询计划中显示为 EagerAggregation 运算符(深蓝色标题)。它们与 Eager 运算符类似,因为它提供了一个…

阅读更多

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

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

阅读更多

在 Cypher 中处理连续数据

当使用 Cypher 进行数据分析时,您可能会遇到需要根据某种连续数据进行识别或过滤的问题。例如,对于体育图,…

阅读更多

© . All rights reserved.