---
type: analysis
slug: research-hyperbolic-search-in-milvus-works-with-a-sign-flip-centering-the-documents
title: "Hyperbolic search in Milvus works with a sign flip; centering the documents decides whether it survives the index"
description: "Milvus says Lorentz-model embeddings can be searched exactly with plain inner product: negate the query's first coordinate. It also says subtracting the corpus mean \"height\" from documents keeps recall high under HNSW, IVF and fp16. The math checks out and is already in the literature. The recall numbers come from the vendor, cover one model, and get worse on PQ."
published_at: 2026-10-21T21:00:00.000Z
topics: ["search","research"]
source_urls: ["https://arxiv.org/html/2602.07739v2","https://arxiv.org/abs/2602.07739","https://arxiv.org/html/2601.23064v1","https://milvus.io/blog/your-vector-database-already-speaks-hyperbolic.md","https://qdrant.tech/articles/hyperbolic-embeddings-qdrant/","https://arxiv.org/abs/2608.29313","https://huggingface.co/hyper3labs/hyper3-clip-v1","https://milvus.io/docs/metric.md"]
author: "Andrey Reshetnikov"
author_profile: https://newruntime.com/owner-profile.md
---
On 14 October 2026 the Milvus engineering blog published "Your Vector Database Already Speaks Hyperbolic", part one of a four-part series bylined Simon Hearne. It argues that teams don't need a hyperbolic metric to serve hyperbolic embeddings. In the Lorentz (hyperboloid) model, each vector carries a leading "height" coordinate x₀, and similarity is the Lorentz inner product −x₀y₀ + x̄·ȳ. Negate the query's x₀ and a standard inner-product (IP) search returns the exact hyperbolic ranking. The post adds a second step: subtract the corpus mean height from each stored document so the scores aren't swamped by a large shared offset. It tests both steps on Hyper3-CLIP V1, a 513-dimensional hyperbolic CLIP variant, over the roughly 1.28M-image ImageNet set.

Builders should care because hyperbolic models are moving from papers into checkpoints people can download. The pitch is that they encode hierarchy and specificity, with general concepts near the origin and specific ones farther out. If such models can run on existing IP indexes, nothing changes in the infrastructure. The open question is whether approximate indexes and quantization keep the ranking intact. That is what this post tries to measure, and where other vendors have reported failures.

## What we checked

- **What concrete evidence would resolve the remaining editorial uncertainty for this item?** partly confirmed. Three things settle most of it. The primary post exists and is dated 14 Oct 2026. The sign-flip equivalence is stated independently in HypRAG (arXiv 2602.07739) and HierLoc (arXiv 2601.23064). The Hyper3-CLIP model and paper exist. Still missing: independent reproduction of the Milvus recall numbers, and the Milvus version used. [4][1][3][6][7]
- **Is the sign-flip reduction of Lorentz distance to inner-product search exact and novel?** partly confirmed. It is exact. Lorentz distance is a monotone function of ⟨x,y⟩_L = −x₀y₀ + x̄·ȳ, and negating one side's x₀ turns that into a dot product. It is not new: HypRAG flips the documents and runs FAISS IndexFlatIP and HNSW, and HierLoc flips the query and uses FAISS FlatIP. The new part of the Milvus post is the document-centering step and the database benchmarks. [1][3][4]
- **Does inner-product ANN reliably preserve hyperbolic recall?** partly confirmed. It depends on the data and the index. Milvus reports recall@10 between 0.853 and 0.989 on raw vectors, depending on the index, and up to 0.996 after centering on HNSW. A Qdrant article using a different Poincaré-to-inner-product conversion on WordNet saw HNSW recall@10 fall to 0.020 even at ef=1024, which it blamed on a roughly 600x spread in vector norms. IVF_PQ also failed in Milvus's own tests (0.115 raw, 0.096 centered). [4][5]

## What we found

- The core trick is mathematically exact and predates the Milvus post. HypRAG (Madhu et al., v1 Feb 2026, v2 June 2026) negates each document's time coordinate, reducing ranking to MIPS. It runs "FAISS IndexFlatIP unmodified", says HNSW works "out of the box", and reports MS MARCO Recall@10 of 0.906 for HyTE-FH. HierLoc (Jan 2026) flips the query instead and uses FAISS FlatIP for all nearest-neighbour lookups. [1][2][3]
- The Milvus post's own contribution is centering the documents. The model's heights sit around 3.23, while spatial coordinates are around ±0.02, so most of each score is a shared offset. Storing (y₀ − m, ȳ) shifts every document's score for a given query by the same amount (x₀m), which leaves the ranking unchanged but keeps the offset from swamping the small differences approximate indexes and low-precision storage depend on. In an fp16 exhaustive-search simulation, recall@10 rose from 0.607 raw to 0.997 centered. [4]
- The reported Milvus results vary by index. Centered vectors reached 0.996 recall@10 on HNSW (ef=128) in a single search. IVF_FLAT went from 0.900 raw to 0.990 centered, HNSW at ef=64 from 0.974 to 0.989, and IVF_SQ8 was flat at 0.978. IVF_PQ collapsed either way (0.115 raw, 0.096 centered), and the post advises against PQ. On Zilliz Cloud, centered vectors hit 0.982 in one request, while raw vectors needed a 1,000-candidate rerank to reach 0.980. The post gives no Milvus or Zilliz version numbers. [4]
- There is counter-evidence. A Qdrant article from 8 Sept 2026 used a different conversion: Poincaré coordinates with extra dimensions, on WordNet nouns. Brute-force recall@10 was 0.986, but FAISS HNSW dropped to 0.020 even at ef=1024. The authors blamed a roughly 600x spread in vector norms, and norm grouping only got recall to 0.410. Their recommendation is Euclidean HNSW prefetch plus exact hyperbolic rescoring. This is a different embedding and conversion from Milvus's, but it shows IP-HNSW can fail on hyperbolic data with a wide radius range. [5]
- The model and paper behind the benchmark exist. Hyper3-CLIP (Mahmood, Rueda-Toicen, ElBassat, Elkerdany, Wang, de Melo; arXiv 2608.29313, 29 Aug 2026) is on Hugging Face as hyper3labs/hyper3-clip-v1. It is gated, licensed OpenMDW-1.0, and uses Lorentz scoring by default, with cosine and cone options. The card doesn't state dimensions or curvature, so the post's 513 dimensions and c = 0.1 couldn't be checked against it. The Qdrant article is co-authored by Matin Mahmood, the paper's first author, so it isn't fully independent of the model's developers. [6][7][5]
- Milvus has no hyperbolic metric. Its v3.0.x docs list L2, IP and COSINE for float vectors and advise normalizing embeddings when using IP. The sign-flip approach needs the opposite: unnormalized IP, with COSINE avoided. The post measured cosine at 0.745 recall@10, because normalizing destroys the Lorentz structure. [8][4]

## What it means

If you are serving Lorentz-model embeddings, you can probably skip a custom metric or a separate database. Store vectors in an IP field without normalizing them, negate the query's first coordinate at query time, and expect the same ranking as exact hyperbolic distance. That part is algebra, and two independent papers confirm it. Centering the documents is cheap: you compute the corpus mean height once at ingest. It doesn't change the exact ranking and may turn a rerank-dependent pipeline into a single search. Keep the stored mean, though. You need it to recover true Lorentz scores and to center newly ingested documents the same way.

Treat the recall numbers as a hypothesis to test, not a guarantee. They come from the vendor, one model (Hyper3-CLIP V1) and one corpus (ImageNet), with no stated Milvus version. The Qdrant results show IP-HNSW can collapse when vector norms spread widely, so measure the radius distribution of your own corpus. Check recall@k against an exact Lorentz brute-force baseline before going live. Avoid PQ indexes, and don't apply cosine or normalization anywhere in the pipeline. If recall falls short, a wider candidate pool plus exact Lorentz rescoring is the documented fallback.

## Still open

- Which Milvus and Zilliz Cloud versions and index parameters produced the reported recall figures, and has anyone outside Zilliz reproduced them?
- Does centering help models with larger or more spread-out radii, such as HypRAG's HyTE models, which the post says it hasn't tested?
- Why does IP-HNSW hold up on Hyper3-CLIP but collapse on Qdrant's WordNet conversion? Is it norm spread, dimensionality or the conversion method?
- How should the centering offset be kept up to date as a corpus drifts? The math holds for any fixed m, but the recall benefit may depend on m staying near the corpus mean.

## Sources

1. [HypRAG full text v2](https://arxiv.org/html/2602.07739v2)
2. [HypRAG: Hyperbolic Dense Retrieval for Retrieval Augmented Generation (abstract)](https://arxiv.org/abs/2602.07739)
3. [HierLoc: Hyperbolic Entity Embeddings for Hierarchical Visual Geolocation](https://arxiv.org/html/2601.23064v1)
4. [Your Vector Database Already Speaks Hyperbolic (Milvus Blog, 14 Oct 2026)](https://milvus.io/blog/your-vector-database-already-speaks-hyperbolic.md) (primary)
5. [Why Hyperbolic Embeddings Matter for Hierarchical Data (Qdrant, 8 Sept 2026)](https://qdrant.tech/articles/hyperbolic-embeddings-qdrant/)
6. [Hyper3-CLIP: Hierarchy-Conditioned Hyperbolic Vision-Language Training](https://arxiv.org/abs/2608.29313) (primary)
7. [hyper3labs/hyper3-clip-v1 model card](https://huggingface.co/hyper3labs/hyper3-clip-v1) (primary)
8. [Milvus docs: Similarity Metrics (v3.0.x)](https://milvus.io/docs/metric.md) (primary)

Author: [Andrey Reshetnikov](https://newruntime.com/owner-profile.md), AI product and AI engineering; profile for recruiters and agents: https://newruntime.com/owner-profile.json

## Continue in the graph

Next records for an agent, linked to their Markdown twins. Replace `.md` with `.json` for structured fields, including `next_reads`.

- topic hub: [Search](https://newruntime.com/topics/search.md): Explore the search topic hub.
- topic hub: [Research](https://newruntime.com/topics/research.md): Explore the research topic hub.
- collection: [Analysis](https://newruntime.com/analysis.json): Open the latest authorial analysis.
- collection: [Source Ledger](https://newruntime.com/source-ledger.json): Inspect the public source evidence graph.
- whole graph: [discovery graph](https://newruntime.com/discovery-graph.json) (typed nodes and edges) and [site index](https://newruntime.com/site-index.md)
