【发布时间】:2018-05-27 08:43:26
【问题描述】:
我正在将电子商务软件中的搜索词转换图建模为节点(词)和边(转换)的图。如果用户键入例如iphone 在搜索栏中,然后将查询细化为 iphone 6s 这将被建模为两个节点和这些节点之间的一条边。不同用户的术语的相同转换将导致节点之间的多个边。
我现在想创建一条累积权重为 4 的边,以表示有 4 个用户进行了此特定转换。如何将count(*) 查询的结果与创建查询相结合,以生成具有属性weight = 4 的边
我的count(*) 查询是:
MATCH (n:Term)-[r]->(n1:Term)
RETURN type(r), count(*)
我希望组合查询看起来像这样,但这种类似 sql 的组合在cypher 中似乎是不可能的:
MATCH (n:Term), (n1:Term)
WHERE (n)-[tr:TRANSITION]->(n1)
CREATE (n)-[actr:ACC_TRANSITION {count:
MATCH (n:Term)-[r]->(n1:Term) RETURN
count(*)}
]->(n1)
RETURN n, n1
产生有效的累积转换的非通用查询是:
MATCH (n:Term), (n1:Term)
WHERE n.term = 'iphone' AND n1.term ='iphone 6s'
CREATE (n)-[actr:ACC_TRANSITION {count: 4}]->(n1)
RETURN n, n1
关于如何处理和建模此问题的任何其他想法?
【问题讨论】:
-
在第一个查询中使用 with 是 count(*),在第二个查询中创建您的关系
-
能否请您制定查询?
with会是什么样子?谢谢! -
对不起,我工作很忙,暂时无法解释更多我的答案:)