两点最短路径,基于OLTP,单源
1 函数介绍
- repeat 循环执行括号里面的遍历器,每个遍历分支都会有一个小精灵去跑
- sideEffect 额外处理内容,不会影响上个函数的返回值
- aggregate 聚合函数,基于sideEffect实现,可以通过 cap/select 取出
- emit 针对repeat的收集器,判断哪些路径需要收集,这个有待研究,和unitl/times 有很大的区别
- until 循环终止条件,与times不可同时使用
- times 循环终止条件,与until不可同时使用,只能传最大迭代次数
- cap 从 sack/store/aggregate 等结果集中取值
- unfold 数组展开为多行
- dedup 行去重
- loops 获取迭代次数
- simplePath 针对bothE,路径不会来回走
- sack 口袋,每个小精灵自己都可以带一个
2 核心思路
- util中设置单一遍历器的终止条件,并不会使所有遍历器停止,及每个限制条件都是对每个小精灵生效的,需要找一个全局终止条件
- sack是针对每个小精灵的,store是全局懒加载,aggregate是全局及时加载
- 此方法结合多线程,可实现多点最短路径,很快的
- 此方法加速可以尝试改为多源遍历
3 代码实现
from_id