Saltearse al contenido

BM25 Retriever

BM25 Retriever busca entre los documentos de una base vectorial los que contienen las palabras de la pregunta, dando más peso a las palabras poco frecuentes. Complementa la búsqueda por significado cuando importan los términos exactos, como un código de producto o un nombre propio.

No importan las mayúsculas, las tildes ni los signos de puntuación: «jt-777?» encuentra «JT-777:», y los códigos con guiones se comparan enteros. Lee todos los documentos de la base (con FAISS, Chroma y Qdrant; con otras bases, hasta 10.000).

Un buscador (retriever) recibe una pregunta y devuelve los fragmentos de documentos que mejor la responden, para que un agente o un modelo conteste con tu información.

Cuándo usarlo

  • Tus usuarios buscan por referencias, códigos o nombres exactos.
  • Quieres combinar la búsqueda por palabras con la búsqueda por significado en un Ensemble Retriever.
  • La búsqueda por significado devuelve resultados parecidos pero no el documento exacto.

Configuración

CampoQué hace
Search QueryLa pregunta o las palabras que se buscan.
Vector Store (obligatorio)El conector donde enchufas la salida Vector Store de una base vectorial con los documentos.
Number of ResultsCuántos documentos devuelve. Por defecto, 5.

La misma información, sin preparación extra

No. Usa los mismos fragmentos que ya guardaste en la base vectorial, tal cual, sin una segunda ingesta ni otro formato: en cada ejecución los lee de la base (todos en FAISS, Chroma y Qdrant; hasta 10.000 en las demás) y construye en ese momento su índice de palabras. Si troceaste con Contextual Text Splitter, también busca en la frase de contexto de cada fragmento. Lo único a tener en cuenta es el volumen: con colecciones muy grandes, leerlas en cada pregunta tarda más.

Resultado

  • Retriever: el buscador, para conectarlo a componentes que piden un buscador, como otro de esta familia o un componente de preguntas y respuestas.
  • Results: los fragmentos encontrados para Search Query, el mejor primero, cada uno con los datos de su documento y su posición en rank. Pásalos a un prompt o a un agente.

Si la base no se puede leer o no tiene documentos, el componente se detiene con un error que lo dice, en vez de devolver un resultado vacío.

Uso como herramienta de un agente

Conecta BM25 Retriever a la entrada Tools de un Agent y el agente buscará por su cuenta: él escribe Search Query con las palabras o los códigos que busca. Por defecto se llama keyword_search; en la pestaña Tool cambia la descripción para decir qué hay en tus documentos.

Ejemplo

Una ferretería quiere que su asistente encuentre productos por su referencia.

  1. Conecta la salida Vector Store de su base de productos a Vector Store.
  2. Conecta la pregunta del cliente, por ejemplo «REF-4521», a Search Query.
  3. Pasa Results al agente.

Cifras medidas

Medido el 17 de octubre de 2026 sobre una base de conocimiento de prueba (9 documentos de un servicio técnico ficticio, 40 preguntas). Es un único conjunto sintético: muestra cómo se comporta la técnica, no una promesa para tus datos.

  • En preguntas por un código o una referencia exacta, el resultado correcto estaba entre los 5 primeros en el 88 % de los casos.
  • Combinado a partes iguales con la búsqueda por significado en un Ensemble Retriever, acertó todas las preguntas por código (entre los 5 primeros) y el 83 % del total.
  • Solo, por palabras, se queda corto con preguntas formuladas con otras palabras: úsalo junto a una búsqueda por significado.

Vídeo

Este vídeo compara la búsqueda normal con la búsqueda híbrida más la reordenación, en una pregunta por una referencia de pieza.

Lo que ves en el vídeo:

  1. Qdrant sola, con sus 5 primeros resultados, no trae la pieza MO-305.
  2. BM25 Retriever y Qdrant unidos en Ensemble Retriever con Weights 0.5, 0.5, y Local Rerank detrás: pide 20 candidatos y se queda con los 5 mejores.
  3. El primer resultado es la lista de recambios del manual del molino, donde está «MO-305: condensador de arranque de 20 µF», con una relevancia de 0,55.
  4. La misma combinación, conectada como herramienta de un Agent, responde bien a la pregunta.

Componentes relacionados

  • Ensemble Retriever: combina este buscador con uno por significado.
  • Chroma DB: una base vectorial de la que pueden partir estos buscadores.
  • Local Rerank: reordena los resultados combinados por relevancia.

Para ver cuándo combinar palabras y significado, consulta Técnicas de búsqueda en la guía de RAG.