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