cosine_similarity

Generic Description

Measures directional similarity between equal-length vectors. It is documented separately because similarity orientation, vector dimensions, and set semantics directly affect ranking and interpretation.

Simple example:

RETURN cosine_similarity(vector([1.0, 0.0]), vector([1.0, 0.0])) AS value

Consumer-Level Explanation

Use it for semantic ranking where vector angle matters more than vector magnitude. Prefer this function when symbolic graph filters and similarity evidence should remain in one auditable Cypher pipeline.

More Detailed Explanation

cosine_similarity keeps similarity scoring in the same Cypher pipeline as symbolic graph filters and document metadata checks. That lets a query combine labels, relationships, time filters, and embedding or set overlap scores without asking a client to reconcile separate result sets.

Advanced Example

This example applies cosine_similarity after symbolic graph filtering, which keeps hybrid retrieval constraints and similarity scoring in one visible pipeline.

MATCH (u:User)-[e:VIEWED]->(d:Document)
TIME e.ts BETWEEN datetime('2025-01-01T00:00:00Z') AND datetime('2025-02-01T00:00:00Z')
WITH d, cosine_similarity(vector(properties(d).embedding), vector([0.22, 0.18, 0.44])) AS semantic_score
RETURN d.title AS document, semantic_score
ORDER BY semantic_score DESC
LIMIT 10

Real Use Cases

Real Limitations And Tradeoffs