Neo4j:当包含另一个项目时创建一个项目列表

问题描述

我想从 Buy1 与 Item346 的交集创建一个新列表 (c2) Buy1 : [商品12、商品23、商品7、商品562、商品346、商品85]

我要返回的列表(vsm 表示) c2 : [0,1,0]

解决方法

如果您确实希望值不相等时为 0,而值不相等时为 1,则可以使用 CASE 使用列表提取来处理输出:

WITH ['Item 12',"Item 23","Item 7","Item 562","Item 346","Item 85"] as buy1,"Item 346" as item
RETURN [i in buy1 | CASE WHEN i = item THEN 1 ELSE 0 END] as output 

编辑:如果您的输入是一个项目列表,而不仅仅是单个项目,那么我们可以使用列表成员资格检查(使用 IN)来决定何时输出 1 或 0:

WITH ['Item 12',["Item 346","Item 7"] as items
RETURN [i in buy1 | CASE WHEN i IN items THEN 1 ELSE 0 END] as output