Metric Mismatch

March 6, 2026 · View on GitHub

🧭 Quick Return to Map

You are in a sub-page of RAG_VectorDB.
To reorient, go back here:

Think of this page as a desk within a ward.
If you need the full triage and all prescriptions, return to the Emergency Room lobby.

Use this page when nearest neighbors look similar in cosine space but your VectorDB runs L2 or dot, or the reverse.
This failure appears often in FAISS, Milvus, pgvector, Weaviate, Redis, Vespa, and similar stores.


Open these first


Core acceptance

  • ΔS(question, retrieved) ≤ 0.45
  • Coverage ≥ 0.70 for the target section
  • λ remains convergent across three paraphrases and two seeds
  • Store metric matches embedding training metric (cosine ↔ cosine, L2 ↔ L2, dot ↔ dot)

Typical breakpoints and the right fix


Store defaults reference

StoreDefault metricNotes
FAISSL2 (can set IP or cosine)Normalize vectors before cosine search
MilvusL2 / IPCosine requires explicit normalization
pgvectorL2 / cosine / IPMust choose at index creation
WeaviatecosineDot/IP optional
Redis-VectorcosineNormalize mandatory
VespadotNeeds scaling to emulate cosine

Fix in 60 seconds

  1. Log current metric
    Run a probe query (SELECT metric FROM index_metadata). Verify it matches embedding doc.

  2. Check normalization
    If metric=cosine but vectors are raw, ΔS will inflate. Normalize to unit length.

  3. Re-index with explicit metric
    Drop and rebuild index with the same metric as embedding training.

  4. Hybrid sanity check
    If using BM25+dense, reweight so ΔS ≤ 0.45 and coverage ≥ 0.70.


Copy-paste test query

-- Example: pgvector
SELECT id, embedding <=> query_embedding
FROM documents
ORDER BY embedding <=> query_embedding
LIMIT 5;

Ensure <=> operator matches the chosen metric (cosine, L2, or IP).


🔗 Quick-Start Downloads (60 sec)

ToolLink3-Step Setup
WFGY 1.0 PDFEngine Paper1️⃣ Download · 2️⃣ Upload to your LLM · 3️⃣ Ask “Answer using WFGY + <your question>”
TXT OS (plain-text OS)TXTOS.txt1️⃣ Download · 2️⃣ Paste into any LLM chat · 3️⃣ Type “hello world” — OS boots instantly

Explore More

LayerPageWhat it’s for
⭐ ProofWFGY Recognition MapExternal citations, integrations, and ecosystem proof
⚙️ EngineWFGY 1.0Original PDF tension engine and early logic sketch (legacy reference)
⚙️ EngineWFGY 2.0Production tension kernel for RAG and agent systems
⚙️ EngineWFGY 3.0TXT based Singularity tension engine (131 S class set)
🗺️ MapProblem Map 1.0Flagship 16 problem RAG failure taxonomy and fix map
🗺️ MapProblem Map 2.0Global Debug Card for RAG and agent pipeline diagnosis
🗺️ MapProblem Map 3.0Global AI troubleshooting atlas and failure pattern map
🧰 AppTXT OS.txt semantic OS with fast bootstrap
🧰 AppBlah Blah BlahAbstract and paradox Q&A built on TXT OS
🧰 AppBlur Blur BlurText to image generation with semantic control
🏡 OnboardingStarter VillageGuided entry point for new users

If this repository helped, starring it improves discovery so more builders can find the docs and tools.
GitHub Repo stars