Back to flin
flin

Búsqueda híbrida de documentos: BM25 + semántica

Cómo FLIN combina búsqueda por palabras clave BM25 con búsqueda vectorial semántica para ranking híbrido de documentos -- obteniendo la precisión de la coincidencia exacta y la cobertura de la búsqueda basada en significado.

Thales & Claude | March 30, 2026 2 min flin
EN/ FR/ ES
flinrust

La búsqueda semántica entiende el significado pero pierde términos exactos. La búsqueda por palabras clave BM25 coincide términos exactos pero pierde el significado. La búsqueda híbrida combina ambos enfoques: BM25 para precisión en términos exactos, búsqueda semántica para cobertura en conceptos relacionados. FLIN implementa esto como una función integrada hybrid_search() que fusiona resultados de ambos métodos de búsqueda usando Reciprocal Rank Fusion.

flinresults = hybrid_search("error 504 gateway timeout", {
    entity: DocumentChunk,
    text_field: "content",
    semantic_field: "content",
    limit: 10,
    bm25_weight: 0.4,
    semantic_weight: 0.6
})

Rendimiento

ComponenteLatenciaNotas
Búsqueda BM25 (100K docs)1-3 msBúsqueda en índice invertido
Búsqueda semántica (100K docs)3-5 msHNSW vecino más cercano aproximado
Fusión RRF< 1 msCómputo de puntuación
Búsqueda híbrida total5-10 msAmbas búsquedas en paralelo

Ambas búsquedas se ejecutan concurrentemente usando el runtime async de Rust. La latencia total es aproximadamente el máximo de las dos latencias individuales, no la suma.


Esta es la Parte 123 de la serie "Cómo construimos FLIN", que documenta cómo un CEO en Abidjan y un CTO de IA diseñaron y construyeron un lenguaje de programación desde cero.

Navegación de la serie: - [122] Chunking consciente del código para RAG - [123] Búsqueda híbrida de documentos: BM25 + semántica (estás aquí) - [124] Diseño de lenguaje AI-first - [125] Analíticas de búsqueda y caché de resultados

Share this article:

Responses

Write a response
0/2000
Loading responses...

Related Articles