euclidean_similarity
Generic Description
Turns Euclidean distance into a higher-is-better similarity score. It is documented separately because similarity orientation, vector dimensions, and set semantics directly affect ranking and interpretation.
Simple example:
RETURN euclidean_similarity(vector([1.0, 0.0]), vector([1.0, 0.0])) AS value
Consumer-Level Explanation
Use it when downstream ranking expects similarity orientation but the geometry is distance-based. Prefer this function when symbolic graph filters and similarity evidence should remain in one auditable Cypher pipeline.
More Detailed Explanation
euclidean_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 euclidean_similarity after symbolic graph filtering, which keeps hybrid retrieval constraints and similarity scoring in one visible pipeline.
MATCH (d:Document)
WITH d, euclidean_similarity(vector(properties(d).embedding), vector([0.22, 0.18, 0.44])) AS embedding_similarity
RETURN d.title AS document, embedding_similarity
ORDER BY embedding_similarity DESC
Real Use Cases
- semantic ranking over embedded documents after graph/time filtering
- link-prediction features based on shared neighbors or metadata overlap
- hybrid retrieval where symbolic constraints and vector scores are both visible
Real Limitations And Tradeoffs
- vector functions require compatible dimensions and meaningful embedding spaces
- set-similarity functions treat lists as sets and may ignore duplicate frequency
- a high similarity score is evidence, not proof of domain equivalence