知识库

标记为 cypher 的文章

关于 OPTIONAL MATCH 的说明

OPTIONAL MATCH 就像 MATCH 一样,会在你的图数据库中匹配模式。不同之处在于,如果没有找到匹配项,OPTIONAL MATCH 将会为……使用 null 值。

阅读更多

apoc 4.0 中 apoc.periodic.iterate() 的重大变更

在 3.5 版本中,实体(节点、关系、路径)可以在一个事务中获取并安全地被另一个事务重用。然而,在 4.0 版本中,这些实体保留了对其原始来源的引用……

阅读更多

使用 Cypher 实现 longestPath(最长路径)

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

阅读更多

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

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

阅读更多

UNION 查询的替代方案

虽然 UNION 在某些情况下很有用,但通常可以通过对查询进行细微修改来完全避免使用它们。在本文中,我们将展示各种示例情况,其中……

阅读更多

比较路径中的关系属性

你想要比较路径中的关系属性,可以通过全局值或参数进行比较,也可以在路径内相互比较。基本模型:确保有约束……

阅读更多

条件 Cypher 执行

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

阅读更多

在 Cypher 中创建并使用链表

在使用图数据库时,有时你可能希望由某些节点创建链表。如果要链接的每个节点都有其……

阅读更多

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

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

阅读更多

如何使用 Cypher 确定 Neo4j 的版本和版本类型

如果你想确定正在运行的 Neo4j 实例的版本和版本类型,可以通过运行以下 Cypher 语句来实现:预期的输出将是

阅读更多

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

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

阅读更多

debug.log 中关于“最后检查点之后发现的提交 (Commits found after last checkpoint)”消息的解释

例如,在运行备份时,你可能会在上述命令的输出中观察到类似的细节,并发现从开始 (Start) 到……有较长的停顿(即 5 分钟以上)

阅读更多

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

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

阅读更多

关于 LOAD CSV 报错 “Couldn’t load the external resource …” 的解释

当运行 LOAD CSV Cypher 语句时,无论是通过 bin/neo4j-shell 还是浏览器 (https://:7474),都可能会导致如下错误,并且 data/graph.db/messages.log (2.x) 或……

阅读更多

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

Neo4j 维护一个事务性计数存储,用于保存许多内容的计数元数据。计数存储用于通知查询规划器,以便它可以做出明智的……

阅读更多

Neo4j 中的全文搜索

Neo4j 中的全文搜索是通过全文模式索引支持的。全文模式索引以事务方式创建、删除和更新,并自动在整个集群中复制。例如……

阅读更多

如何用 Cypher 实现等同于 SQL HAVING 子句的功能

在传统的 SQL 数据库中,HAVING 子句将限制聚合值。例如,将返回所有拥有超过 10 万居民的邮政编码。要用 Cypher 实现同样的功能……

阅读更多

sql

如何比较两个图是否相等

如果你希望比较两个图(或子图)以确定它们是否等价,以下 Cypher 将生成节点和属性的 md5sum,从而使……

阅读更多

如何将表示日期时间戳的属性转换为其他时区

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

阅读更多

如何以十六进制表示法定义 LOAD CSV 的 FIELDTERMINATOR

使用 LOAD CSV 时,可以定义所使用的字段分隔符,默认值为 ',' 字符。如果你想覆盖默认值,可以通过……来实现

阅读更多

如何在 neo4j-shell 中定义、显示和使用参数

bin/neo4j-shell 提供了一个命令行界面,可以通过 Cypher 语句查询你的图,并向这些语句中包含参数。使用参数而不是硬编码值,将……

阅读更多

如何确定 detach delete 将影响的节点和关系数量

在运行 match …​. detach delete n; 之前,它将找到上述节点并删除与这些节点关联的所有关系,并删除节点本身……

阅读更多

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

虽然为一个节点分配一个或多个标签有很多好处(例如:从索引使用中获得性能提升,能够将节点分组到集合中等),但也有可能创建一个……

阅读更多

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

要显示定义了最多属性的节点,请运行以下 Cypher:典型的输出类似于:输出的第一行表明存在一个名为……的标签

阅读更多

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

使用 Cypher,可以通过以下方式计算关系数量,这将报告名为 Sylvester Stallone 的演员的传入/传出关系数量。使用 bin/neo4j-shell 并运行……

阅读更多

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

APOC 允许使用存储过程 apoc.cypher.runFile,然后将文件的内容运行到 Cypher 引擎。为了允许在……中读取文件

阅读更多

如何用 Cypher 实现等同于 SQL “Create Table as Select” 的功能

在传统的 SQL RDBMS 中,人们可以执行“create table as select”(即 CTAS),其目的是创建一个新表并将现有数据从……复制到其中

阅读更多

如何通过 cypher-shell 和管道传输查询文件来生成 profile/explain

如果你准备了一个包含 profile 或 explain 子句的 Cypher 语句文件,并且想将该文件通过管道传给 bin/cypher-shell 以生成 profile/explain……

阅读更多

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

使用以下 Cypher 将生成图中节点的“清单”,以及与每个标签的节点数、平均属性数、最小属性数相关的统计信息……

阅读更多

如何报告具有多个标签的节点

如果你的数据模型选择在一个节点上定义多个标签,例如,要查找所有定义了 Actor 和 Director 两个标签的节点,请使用……

阅读更多

如何在 Cypher 语句中设置断点以便进一步分析

如果你希望在 Cypher 语句中设置一个“断点”以便进行进一步分析(即查看占用了多少锁、内存使用情况),可以添加一个……

阅读更多

如何通过 LOAD CSV 查看 CSV 文件的列标题

如果你有一个具有以下内容的 CSV 文件,并且只想运行 LOAD CSV 命令来返回列标题,以下内容应该就足够了……

阅读更多

apoc.periodic.iterate 如何处理资源?

apoc.periodic.iterate 是如何工作的?例如,当运行 call apoc.periodic.iterate("MATCH (n) RETURN n", "DETACH DELETE n", {batchSize:1000}) 时,它是否会在 MATCH RETURN 后附加一个 LIMIT,以便它只……

阅读更多

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

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

阅读更多

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

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

阅读更多

如何获取图中对象的高级清单(第 2 部分)

继关于如何获取图中对象高级清单的知识库文章之后,本文将介绍如何获取更详细的高级清单……

阅读更多

如何获取图中对象的高级清单

以下 Cypher 可用于获取图数据库中对象数量的简单高级视图。如果你正在尝试……,则可以使用此功能

阅读更多

如何为标签实现主键属性

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

阅读更多

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

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

阅读更多

限制每行的 MATCH 结果

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

阅读更多

Neo4j:将字符串转换为日期

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

阅读更多

执行匹配交集

匹配交集是一种常见用例,即你正在搜索与一组输入节点中的所有节点都有关系的节点。在本文的其余部分,我们将……

阅读更多

对多个节点执行模式否定

某些用例需要匹配未连接到其他某些节点集的节点。我们将讨论这种查询的错误和正确方法。……

阅读更多

UNION 后处理

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

阅读更多

重置查询基数(cardinality)

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

阅读更多

理解零行上的聚合

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

阅读更多

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

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

阅读更多

了解 MERGE 的工作原理

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

阅读更多

了解 Neo4j 查询计划缓存

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

阅读更多

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

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

阅读更多

了解查询计划缓存

当首次提交 Cypher 语句时,Neo4j 将在规划查询之前尝试确定查询是否在计划缓存中。默认情况下,Neo4j 将保留 1000 个查询……

阅读更多

更新节点但返回其更新前的状态

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

阅读更多

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

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

阅读更多

使用显式索引进行文本搜索

截至 Neo4j 3.4.x,模式索引最适合索引精确的属性值,但不支持“模糊”或全文搜索。然而,传统索引确实允许优化……

阅读更多

使用 max() 和 min() 同时保留项目

max() 和 min() 的聚合函数非常有用,但有时你会发现自己在为本应简单的用例与 Cypher 的聚合行为作斗争。这通常来自……

阅读更多

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

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

阅读更多

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

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

阅读更多

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

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

阅读更多

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