You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用纯Cypher基于字符串列表创建节点路径并复用已有图资源

Cypher路径创建解决方案

实现逻辑

使用MERGE语句实现幂等操作:已存在的节点、:NEXT关系会直接复用,仅当不存在时才创建,避免重复数据。通过遍历字符串列表的相邻元素对,批量构建整条有向路径。

可直接运行的示例代码

// 替换此处列表为你的任意长度字符串列表
WITH ["A", "B", "C"] AS inputList
// 遍历获取所有相邻元素对
UNWIND range(0, size(inputList) - 2) AS index
WITH inputList[index] AS preVal, inputList[index + 1] AS nextVal
// 处理前序节点
MERGE (pre:Test {ps: preVal})
// 处理后序节点
MERGE (next:Test {ps: nextVal})
// 处理有向关系
MERGE (pre)-[:NEXT]->(next)

兼容单元素列表的扩展版本

如果你的输入列表可能只有1个字符串,可使用以下兼容版本:

WITH ["A"] AS inputList
CALL {
    WITH inputList
    WHERE size(inputList) = 1
    // 仅创建/复用单个节点
    MERGE (:Test {ps: inputList[0]})
    RETURN count(*) AS opCount
    UNION ALL
    WITH inputList
    WHERE size(inputList) >= 2
    UNWIND range(0, size(inputList) - 2) AS index
    WITH inputList[index] AS preVal, inputList[index + 1] AS nextVal
    MERGE (pre:Test {ps: preVal})
    MERGE (next:Test {ps: nextVal})
    MERGE (pre)-[:NEXT]->(next)
    RETURN count(*) AS opCount
}
RETURN opCount

注意事项

  • 你也可以将inputList作为外部参数传入Cypher语句,无需硬编码在语句内
  • 生成的路径结构完全匹配要求:(n1:Test {ps: "A"})-[:NEXT]->(n2:Test {ps: "B"})-[:NEXT]->(n3:Test {ps: "C"})

内容的提问来源于stack exchange,提问作者Luc Bertin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 14:36:08