我有一个看起来像这样的数据集(Artefact) - [HAS] - (关键字),关键字可以被artefacts多次共享。我试图达到的是;Neo4j - 获取类型的所有相关节点并创建新的关系
返回大多数相互关联的关键字节点,与关键词有关的假象的数量,关键字节点之间的重叠计数以及到另一个关键字(关键字) - (artefact) - (关键字)的跳数,两个“共享”关键字。
换句话说,在两个关键字节点之间的相交内的人工记录计数。例如,给定这三个伪影节点
1)匙(关键字; 金属,食品)
2)剑(关键字; 金属,战斗)
3)叉(关键字; 金属,食品)
Th因此,e查询将返回关键字节点,与关键字(3,勺子,剑和叉)有关的人工制品的计数,关键字节点(金属与食物有2个间接连接,以及与战斗有1个)有关的关键词的计数。
一旦我解决了这个问题,为了提高速度,我意识到这是一个很大的查询,请在关键字之间创建一个related_to关系,并将它们共享的artefact的数量计算在内。只能选择1个纪录创造这种关系,以测试它的工作原理:)(因此限制1)
MATCH (n:Keyword)-[r*2]-(x:Keyword)
WITH n, COUNT(r) AS c, x
LIMIT 1
MERGE (n)-[s:RELATED_KEY]-(x) SET s.weight = c
我使用的Neo4j社区版(2.1.6),
非常感谢,安迪