小编ren*_*ene的帖子

Neo4j/Cypher:如果满足某些条件,则建立关系

我正在我的图形DB中进行求和操作:我比较几个节点,计算一个数字来表示图形的某些区域有多相似,如果这个数字足够大,我想在节点之间创建一个关系.

我有一个查询可以做到这一切,除了检查数字是否足够大; 它目前还创建了相似性得分为0的相似关系 - 我不希望如此.

我的完整密码查询有点长,所以我简化了这篇文章.因此我担心我无法在neo4j控制台中提供示例图db.我的图包含Center节点,它们周围有Affinity节点和Searched节点.如果2个中心节点具有相似的Affinity或Searched节点,则中心节点将获得关系.

这是带注释的简化语句:

MATCH (a:Center), (x:Center)
WHERE id(a) <> id(x)
OPTIONAL MATCH a-->(aff1:Affinity), x-->(aff2:Affinity)
WHERE aff1.affinityReference=aff2.affinityReference     // if the Affinity nodes have the same reference, then their Center nodes are similar
OPTIONAL MATCH a-->(search1:Search), x-->(search2:Search)
WHERE search1.searchTerm = search2.searchTerm   // if the Search nodes have the same searchTerm, then their Center nodes are similar
WITH a, x, 
SUM (CASE WHEN aff2.relative_weight IS NULL THEN 0 ELSE (aff2.relative_weight * 5) END) …
Run Code Online (Sandbox Code Playgroud)

neo4j cypher

4
推荐指数
1
解决办法
4891
查看次数

标签 统计

cypher ×1

neo4j ×1