Computes the similarity between two given numeric vectors. Unlike other similarity algorithms that operate on graph structure or node properties, this algorithm works directly on user-provided vectors.
Four metrics are supported:
| Name | Type | Default | Description |
|---|---|---|---|
vector1 | LIST | / | Required. First numeric vector. |
vector2 | LIST | / | Required. Second numeric vector. |
metric | STRING | cosine | Similarity metric: cosine, pearson, euclidean, or jaccard. |
Returns:
| Column | Type | Description |
|---|---|---|
similarity | FLOAT | Computed similarity score |
Cosine similarity:
GQLCALL algo.similarityvec({ vector1: [1.0, 2.0, 3.0], vector2: [4.0, 5.0, 6.0] }) YIELD similarity
Result:
| similarity |
|---|
| 0.9746318461970762 |
Pearson correlation:
GQLCALL algo.similarityvec({ vector1: [1.0, 2.0, 3.0], vector2: [4.0, 5.0, 6.0], metric: "pearson" }) YIELD similarity
Result:
| similarity |
|---|
| 1 |
Euclidean distance:
GQLCALL algo.similarityvec({ vector1: [1.0, 2.0], vector2: [4.0, 6.0], metric: "euclidean" }) YIELD similarity
Result:
| similarity |
|---|
| 0.16666666666666666 |
Jaccard similarity:
GQLCALL algo.similarityvec({ vector1: [1.0, 2.0, 3.0], vector2: [2.0, 3.0, 4.0], metric: "jaccard" }) YIELD similarity
Result:
| similarity |
|---|
| 1 |
Returns the same columns as run mode, streamed for memory efficiency.
GQLCALL algo.similarityvec.stream({ vector1: [1.0, 2.0, 3.0], vector2: [4.0, 5.0, 6.0] }) YIELD similarity RETURN similarity
Result:
| similarity |
|---|
| 0.9746318461970762 |
Returns:
| Column | Type | Description |
|---|---|---|
similarity | FLOAT | Computed similarity score |
GQLCALL algo.similarityvec.stats({ vector1: [1.0, 2.0, 3.0], vector2: [4.0, 5.0, 6.0] }) YIELD similarity
Result:
| similarity |
|---|
| 0.9746318461970762 |