Neo4j:结果重复

时间:2018-10-11 19:22:04

标签: neo4j graph-databases bolt

所以我试图找到每个节点至少具有一个公共节点。这是我用于执行此操作的请求:

MATCH (source:Article)--(neighbor)--(target:Article)
WHERE NOT (source.unique_url) = (target.unique_url)
WITH DISTINCT [source.unique_url, target.unique_url] AS combo, 
     source, target, neighbor 
RETURN combo, 
       source.unique_url AS source_unique_url, 
       source.title AS source_title, 
       source.url AS source_url, 
       target.unique_url AS target_unique_url, target._id AS target_id,
       target.title AS target_title,  
       count(neighbor) AS common_neighbors
ORDER BY common_neighbors DESCENDING

但是可悲的是[source.unique_url, target.unique_url]总是重复的,就像一个节点与另一个节点有一个公共邻居一样,我总是得到这样的结果:

[url1, url2]
[url2, url1]
[url1, url2]
[url2, url1]

我检查了一下,并且数据库中没有重复数据,所以请求正在重复它们,有人知道这可能是什么原因吗? 非常感谢!

1 个答案:

答案 0 :(得分:1)

尝试像这样更改查询的开始。

  1. 为关系添加方向
  2. 添加ID(源)> ID(目标)
X = numpy_array