运行算法
流式
`stream` 模式将算法计算结果作为 Cypher 结果行返回。这类似于标准 Cypher 读取查询的操作方式。
返回的数据可以是节点 ID 和该节点的计算值(例如 PageRank 分数或 WCC componentId),或者两个节点 ID 和节点对的计算值(例如节点相似度相似度分数)。
如果图非常大,`stream` 模式计算的结果也会非常大。在 Cypher 查询中使用 `ORDER BY` 和 `LIMIT` 子句可能有助于支持“前 N 个”类型的使用场景。
统计
`stats` 模式返回算法计算的统计结果,例如计数或百分位数分布。计算的统计摘要作为单个 Cypher 结果行返回。在使用 `stats` 模式时,算法的直接结果不可用。此模式构成了 `mutate` 和 `write` 执行模式的基础,但不尝试进行任何修改或更新。
写入
`write` 模式会将算法计算结果写回 Neo4j 数据库。这类似于标准 Cypher 写入查询的操作方式。计算的统计摘要与 `stats` 模式类似地返回。这是唯一会尝试修改 Neo4j 数据库的执行模式。
写入的数据可以是节点属性(例如 PageRank 分数)、新关系(例如节点相似度)或关系属性。`write` 模式对于算法结果需要被不同查询多次检查的使用场景非常有用,因为计算结果完全由库处理。
为了使 `write` 模式计算的结果能够被另一个算法使用,必须从 Neo4j 数据库中投射一个带有更新图的新图。
常见配置参数
所有算法都允许通过一组配置参数调整其运行时特性。尽管某些参数是算法特有的,但许多参数在算法和执行模式之间是共享的。
要了解更多关于算法特定参数的信息,并找出算法是否支持某个参数,请查阅算法特定的文档页面。 |
- concurrency - 整数
-
控制算法执行的并行度。
此值设置为 4。除非对于Aura 图分析无服务器版,默认值为可用处理器数量。
有关并发设置和限制的更多详细信息,请参阅系统要求的CPU 部分。
- nodeLabels - 字符串列表
-
如果运行算法的图是使用多个节点标签投射进行投射的,则此参数可用于仅选择投射标签的子集。算法将只考虑具有任何所选标签的节点。
- relationshipTypes - 字符串列表
-
如果运行算法的图是使用多个关系类型投射进行投射的,则此参数可用于仅选择投射类型的子集。算法将只考虑具有任何所选类型的关系。
- nodeWeightProperty - 字符串
-
在支持节点权重的算法中,此参数定义包含权重的节点属性。
- relationshipWeightProperty - 字符串
-
在支持关系权重的算法中,此参数定义包含权重的关系属性。指定属性必须存在于指定图的所有指定关系类型中。值必须是数字,并且某些算法可能具有额外的取值限制,例如仅要求正权重。
- maxIterations - 整数
-
对于迭代算法,此参数控制最大迭代次数。
- tolerance - 浮点数
-
许多迭代算法接受容差参数。它控制两次迭代之间的最小差值。如果差值小于容差值,则算法被认为是收敛的并停止。
- seedProperty - 字符串
-
某些算法可以增量计算。这意味着即使图已更改,也可以考虑先前执行的结果。`seedProperty` 参数定义了包含种子值的节点属性。种子处理可以加快计算和写入时间。
- writeProperty - 字符串
-
在 `write` 模式下,此参数设置写入结果的节点或关系属性的名称。如果属性已存在,现有值将被覆盖。
- writeConcurrency - 整数
-
在 `write` 模式下,此参数控制写入操作的并行度。默认值为 `concurrency`。
- jobId - 字符串
-
可以提供要启动的作业 ID,以便使用例如 GDS 的日志记录功能更轻松地跟踪它。
- logProgress - 布尔值
-
配置参数,允许在运行过程时关闭/打开百分比日志记录。默认情况下为 `on`。