APPROSEARCH APPROSEARCH
Glosario

BM25

BM25 (Best Matching 25) es un algoritmo probabilístico de ranking que ordena documentos por relevancia frente a una consulta. Calcula la puntuación combinando frecuencia del término, frecuencia inversa de documento y normalización de longitud. Es el estándar de facto en buscadores desde los años 90.

¿Qué es BM25?

BM25, abreviatura de Best Matching 25, es una función de ranking probabilística desarrollada por Stephen Robertson y Karen Spärck Jones a finales de los 80 y publicada en los Text Retrieval Conferences (TREC) de los 90. Es la evolución de TF-IDF y sigue siendo el algoritmo base de la mayoría de motores de búsqueda modernos (Elasticsearch, OpenSearch, Lucene, Solr, Whoosh).

Cómo funciona

BM25 puntúa la relevancia de un documento respecto a una consulta calculando, para cada término de la consulta:

  1. Term Frequency (TF) — cuántas veces aparece el término en el documento.
  2. Inverse Document Frequency (IDF) — cuán raro es el término en el corpus.
  3. Normalización por longitud — penaliza documentos largos para evitar que ganen solo por volumen.

La fórmula simplificada:

score(D, Q) = Σ IDF(qi) × (f(qi, D) × (k1 + 1))
              / (f(qi, D) + k1 × (1 − b + b × |D| / avgdl))

Donde k1 (típicamente 1.2-2.0) controla la saturación de la frecuencia y b (típicamente 0.75) controla la fuerza de la normalización de longitud.

Ejemplo aplicado a e-commerce

Un usuario busca “zapatillas running rojas” en una tienda con 50.000 SKUs. BM25:

  • Identifica los tres términos: zapatillas, running, rojas.
  • Pondera cada uno por su IDF: “rojas” es más común que “running” → “running” puntúa más.
  • Para cada producto, suma los TF×IDF de los términos presentes en título, descripción y atributos.
  • Penaliza ligeramente productos con descripciones muy largas para evitar sesgo.

Resultado: los primeros productos son zapatillas deportivas rojas con la categoría running, ordenadas por relevancia textual exacta.

Limitaciones

BM25 brilla en matching léxico exacto y consultas técnicas con códigos, pero falla cuando:

  • El usuario escribe en lenguaje natural (“regalo para mi novia que corre maratones”).
  • Usa sinónimos (“zapas” en lugar de “zapatillas”).
  • Comete typos (“zapatlias rojas”).
  • Busca por concepto (“calzado deportivo cómodo para asfalto”).

Para esos casos se complementa con búsqueda semántica vectorial (embeddings).

BM25 en APPROSEARCH

APPROSEARCH usa BM25 como capa léxica del motor híbrido. Cada consulta dispara en paralelo BM25 + búsqueda vectorial. Los resultados se mezclan con un re-ranker que pondera ambos según la naturaleza de la consulta (más BM25 si parece un código, más vector si parece lenguaje natural).

Esta arquitectura ofrece lo mejor de ambos mundos: precisión léxica + comprensión semántica, con latencia < 50 ms p95.

Lecturas recomendadas

  • Robertson, S. y Zaragoza, H. (2009). The probabilistic relevance framework: BM25 and beyond.
  • Elasticsearch docs: Practical BM25.
  • Comparativa práctica: /glosario/busqueda-hibrida/ explica cómo se combina BM25 con embeddings.

Última actualización: 2026-05-25

Lleva la teoría a tu tienda

APPROSEARCH implementa estos conceptos por defecto. Prueba 14 días gratis sin tarjeta.