How We Co-Built miniCOIL EN-ES with Qdrant
Search is one of Pento's core practices. Training our team in AI-powered search led us to co-build miniCOIL EN-ES with Qdrant, a sparse retriever that matches English and Spanish in a single index.
Juan Pablo Sotelo

Search is one of the services we build most at Pento: semantic search, recommendation systems, and the ranking layers that decide what a user sees first. Connecting an embedding model to a vector database gets you a demo. Getting search right in production takes knowing how retrieval works, where each approach breaks, and how to measure the difference.
That conviction sent our team back to school. It is also how we ended up co-building miniCOIL EN-ES with Qdrant, a research preview of a sparse retriever that matches English and Spanish content in a single index, with no translation step. Qdrant published the full technical write-up.1 This post is our side of the story: why we invest in search expertise, how the collaboration started, and what the model solves.
Learning from the people who wrote the book
To build that knowledge, our team took AI-Powered Search: Modern Retrieval for Humans & Agents, a live course on Maven taught by Trey Grainger and Doug Turnbull. They co-authored AI-Powered Search, and Doug also wrote Relevant Search. The course covers hybrid search, learning to rank, RAG, agentic search, and how to evaluate all of it.
The cohort is a big part of the value. It brings together search and AI practitioners from companies like Uber, Best Buy, Pinterest, Amazon, and Airbnb, so the questions in each session come from real production systems.
The talk that started it
One of the sessions was a talk on sparse neural retrieval by Evgeniya (Jenny) Sukhodolskaya from Qdrant.
Sparse neural retrieval keeps what makes keyword search dependable, exact matches you can inspect and control, and adds a learned sense of what a word means in context. Qdrant's take on it is miniCOIL, a model that builds on BM25 and adds a small learned component per word. Its first version is English-only, and Qdrant's write-up about it ended with a plan to extend it to other languages.
That plan caught our attention. English and Spanish are the two languages our team works in every day, and Spanish is our native one. A shared interest in ML research turned into a collaboration: Pento did the development end to end and drove part of the planning, which we shaped with Qdrant acting as technical advisor. The work was relaxed, collaborative, and full of humor (Qdrant's write-up is a fair sample), and the technical bar never dropped.
The result is miniCOIL EN-ES, the next step in the miniCOIL line and its first beyond English.
What miniCOIL EN-ES solves
Keyword search ranks documents by the exact terms they share with the query. That makes it predictable, and it is also its blind spot across languages: to BM25, "home" and "casa" are unrelated tokens. Someone who searches in English never reaches the Spanish page that answers their question.
Teams usually work around this in one of two ways. They translate queries or documents before searching, which puts a translation model in the path of every query and means maintaining extra copies of the index. Or they move to multilingual dense embeddings, which match meaning across languages but give up the exact, controllable matching that keyword search is good at.
miniCOIL EN-ES keeps keyword-style retrieval and still matches across languages, without a translation step.
The idea: match concepts, not words
In a classic sparse vector, each slot stands for a word. miniCOIL EN-ES makes each slot stand for a concept instead: a small group of English and Spanish words that translate to each other, like home and casa, or bat, murciélago, and bate. When an English query and a Spanish document use words from the same concept, they write into the same slots, so one index serves both languages.
Diagram: Qdrant.
Each concept also carries a small learned component that tells the senses of a word apart, so a baseball bat and the animal do not score the same. Words outside the model's concepts fall back to plain BM25, so the worst case is the keyword search most teams already run. The first release covers 2,398 concepts, takes about 30 MB on top of its encoder, and trains on Wikipedia sentences with no hand-labeled relevance data.
Where it helps
Qdrant evaluated the model on the English and Spanish versions of the mMARCO passage-ranking dataset. These are the advantages that stand out:
- One index, no translation. Cross-language search works without a translation model in the query path, which removes a dependency, a source of latency, and the extra translated copies of the corpus.
- Better Spanish search. Within Spanish, it ranks results better than a BM25 configured for Spanish. Spanish has many word forms, and matching on concepts recovers matches that stemming misses.
- No loss in English. In English it performs on par with the original miniCOIL while covering 2,398 concepts instead of 30,000 words.
- More relevant results across languages. Across languages, it surfaces more of the relevant passages in the top 100 than translating the query and running BM25. That matters most when a reranker orders the candidates afterward.
Two caveats keep this honest. Translate-then-BM25 still orders the first 10 results better across languages, and the evaluation only covers queries where the model's concepts apply, about 78 percent of them. This is a research preview, so test it on your own data before adopting it.
What comes next
The checkpoint is on Hugging Face and the training code is on GitHub. Both are released under CC BY-NC 4.0, inherited from the bilingual dictionaries behind the concept vocabulary, so for now they are meant for research and evaluation. A production version would rebuild the vocabulary from permissively licensed sources.
Next on the list: training the remaining concepts, cleaning up noisy ones, broader training data, and a BM25 fallback that understands both languages. The concept idea is not specific to English and Spanish, so other language pairs are a natural follow-up.
If your search runs across more than one language, or you are deciding between keyword, dense, and hybrid retrieval, we would like to hear about it.
More on our search work: modeling aesthetic taste with the Qdrant recommendation API.
Footnotes
-
miniCOIL EN-ES: Sparse Neural Retrieval Across the Language Barrier, Juan Pablo Sotelo and Evgeniya Sukhodolskaya, Qdrant, October 2026. Design, training details, and full evaluation. ↩


