-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSimilarity_1d_Stream_Mutated.cypher
35 lines (34 loc) · 1.65 KB
/
Similarity_1d_Stream_Mutated.cypher
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// Read the similarity relationship from the projection. Variables: dependencies_projection. Requires "Add_file_name and_extension.cypher".
CALL gds.graph.relationshipProperty.stream(
$dependencies_projection + '-cleaned'
,'score'
,['SIMILAR']
)
YIELD sourceNodeId
,targetNodeId
,relationshipType
,propertyValue
WITH gds.util.asNode(sourceNodeId) AS sourceNode
,gds.util.asNode(targetNodeId) AS targetNode
,propertyValue AS similarity
OPTIONAL MATCH (sourceArtifact:Artifact)-[:CONTAINS]->(sourceNode)
OPTIONAL MATCH (targetArtifact:Artifact)-[:CONTAINS]->(targetNode)
WITH sourceNode
,targetNode
,sourceArtifact.name AS sourceArtifactName
,targetArtifact.name AS targetArtifactName
,similarity
WHERE (sourceNode.incomingDependencies > 0
OR sourceNode.outgoingDependencies > 0)
AND (targetNode.incomingDependencies > 0
OR targetNode.outgoingDependencies > 0)
RETURN similarity
,sourceArtifactName
,coalesce(sourceNode.fqn, sourceNode.fileName, sourceNode.name) AS sourceNodeName
,sourceNode.incomingDependencies AS sourceNodeIncomingDependencies
,sourceNode.outgoingDependencies AS sourceNodeOutgoingDependencies
,targetArtifactName
,coalesce(targetNode.fqn, targetNode.fileName, targetNode.name) AS targetNodeName
,targetNode.incomingDependencies AS targetNodeIncomingDependencies
,targetNode.outgoingDependencies AS targetNodeOutgoingDependencies
ORDER BY similarity DESCENDING, sourceNodeName, targetNodeName