在neo4j中找到类似的加权节点

时间:2016-09-20 00:03:27

标签: graph neo4j cypher

  • Nike Sells(重量.9)鞋子
  • Nike Sells(重量.5)服装
  • Reebok出售(重量.9)鞋子 ...

我们谈论的是10k品牌和大约10万个关系。

现在给予像Puma这样的品牌我需要根据他们的销售情况找到与Puma类似的品牌。

我读过一般相似性搜索,但没有得到如何在查询中包含权重。

1 个答案:

答案 0 :(得分:0)

MATCH (b:Brand {name: 'Puma'})
WITH b
MATCH x = (b) - [:SELLS] -> (:Item) <- [:SELLS] - (ob:Brand)
RETURN b, ob, ABS(SUM(RELATIONSHIPS(x)[0]['weight'] - RELATIONSHIPS(x)[1]['weight']))

您可以更改权重差异的得分方式,但这就是您至少可以收集到其他品牌的所有路径以获得权重进行比较的方式。