# Total Neighbors

Total Neighbors computes the closeness of nodes, based on the number of unique neighbors that they have. It is based on the idea that the more connected a node is, the more likely it is to receive new links.

This feature is in the alpha tier. For more information on feature tiers, see API Tiers.

## 1. History and explanation

Total Neighbors is computed using the following formula: where `N(x)` is the set of nodes adjacent to `x`, and `N(y)` is the set of nodes adjacent to `y`.

A value of 0 indicates that two nodes are not close, while higher values indicate nodes are closer.

The library contains a function to calculate the closeness between two nodes.

## 2. Syntax

The following will run the algorithm and return the result:
``````RETURN gds.alpha.linkprediction.totalNeighbors(node1:Node, node2:Node, {
relationshipQuery: null,
direction: "BOTH"
})``````
Table 1. Parameters
Name Type Default Optional Description

`node1`

Node

null

no

A node

`node2`

Node

null

no

Another node

`relationshipQuery`

String

null

yes

The relationship type used to compute similarity between `node1` and `node2`

`direction`

String

BOTH

yes

The relationship direction used to compute similarity between `node1` and `node2`. Possible values are `OUTGOING`, `INCOMING` and `BOTH`.

## 3. Total Neighbors algorithm sample

The following will create a sample graph:
``````CREATE (zhen:Person {name: 'Zhen'}),
(praveena:Person {name: 'Praveena'}),
(michael:Person {name: 'Michael'}),
(arya:Person {name: 'Arya'}),
(karin:Person {name: 'Karin'}),

(zhen)-[:FRIENDS]->(arya),
(zhen)-[:FRIENDS]->(praveena),
(praveena)-[:WORKS_WITH]->(karin),
(praveena)-[:FRIENDS]->(michael),
(michael)-[:WORKS_WITH]->(karin),
(arya)-[:FRIENDS]->(karin)``````
The following will return the Total Neighbors score for Michael and Karin:
``````MATCH (p1:Person {name: 'Michael'})
MATCH (p2:Person {name: 'Karin'})
Table 2. Results
`score`

4.0

We can also compute the score of a pair of nodes, based on a specific relationship type.

The following will return the Total Neighbors score for Michael and Karin based only on the `FRIENDS` relationship:
``````MATCH (p1:Person {name: 'Michael'})
MATCH (p2:Person {name: 'Karin'})
RETURN gds.alpha.linkprediction.totalNeighbors(p1, p2, {relationshipQuery: "FRIENDS"}) AS score``````
Table 3. Results
`score`

2.0