知识库

标记为 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 语句。在此时点……

阅读更多

笛卡尔积(Cross Product)类型的 Cypher 查询性能不佳

就像 SQL 一样,如果你没有正确连接查询的各个部分,将会导致笛卡尔积(交叉积),这通常不是你想要的结果。以……为例

阅读更多

在云端将数据导入 Neo4j

在云端的 Neo4j 实例中加载数据与使用任何其他方法运行 Neo4j 非常相似。但是,有几件小事需要注意……

阅读更多

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

通过 Neo4j Browser 或 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 脚本并再次导入

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

阅读更多

使用计数存储(count store)进行快速计数

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 文件,其内容是:并且……

阅读更多

如何利用连接提示(join hints)避免昂贵的遍历

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

阅读更多

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

在某些情况下,当您需要删除大量节点(以及按规则删除它们的关系)时,可能会诱导您简单地使用 DETACH DELETE,但……

阅读更多

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

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

阅读更多

如何从 Cypher 生成 sysinfo 输出

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

阅读更多

如何为标签实现主键属性

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

阅读更多

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

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

阅读更多

导入 CSV 文件:Neo4j Aura、Desktop 和 Sandbox

根据你使用的工具,将各种文件加载到 Neo4j 需要不同的位置。我们将涵盖的导入方法:远程:Neo4j Aura 和 Neo4j Sandbox 本地:Neo4j……

阅读更多

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

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

阅读更多

限制每行的 MATCH 结果

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

阅读更多

Neo4j 与 JDBC:Neo4j JDBC 驱动程序 vs. 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 中,我们目前有一个称为执行保护的配置属性,可以设置为自动终止耗时超过“x”秒的事务(x 等于……)

阅读更多

重置查询基数(cardinality)

随着查询的执行,它们会构建结果行。Cypher 按行执行操作。当查询由完全独立的部分组成,它们之间互不相关,并且你不希望……

阅读更多

理解零行上的聚合

在某些情况下,Cypher 中的聚合可能很棘手。特别是当在没有匹配项的 MATCH 之后,或者在过滤掉……的过滤操作之后执行聚合时

阅读更多

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

基数问题是 Cypher 查询缓慢或错误的最常见元凶。因此,理解基数,并利用这种理解来管理基数问题,是……的关键组成部分

阅读更多

了解 MERGE 的工作原理

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

阅读更多

了解 Neo4j 查询计划缓存

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

阅读更多

了解不存在的属性并使用 null 处理

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

阅读更多

了解查询计划缓存

当首次提交 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,您必须从 /download/other-releases/ 下载 TAR/ZIP 分发包。对于……

阅读更多

使用子查询控制聚合的作用域

聚合(如 collect() 和 count())在查询计划中显示为 EagerAggregation 运算符(带有深蓝色标题)。它们类似于 Eager 运算符,因为它呈现……

阅读更多

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

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

阅读更多

在 Cypher 中处理连续记录(streaks)

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

阅读更多

© . This site is unofficial and not affiliated with Neo4j, Inc.