Módulo 5: Keyword vs Semantic Search
4. Comparación: Keyword vs Semantic Search
Descripción
Aquí comparas keyword search vs semantic search lado a lado: ventajas, limitaciones, casos de uso. Entenderás que no son excluyentes: muchos sistemas usan ambas (búsqueda híbrida).
Comparación completa
| Aspecto | Keyword Search | Semantic Search |
|---|---|---|
| Qué busca | Palabras exactas | Significado (vectores similares) |
| Sinónimos | ❌ No (sin diccionario) | ✅ Sí (embeddings similares) |
| Conceptos relacionados | ❌ No | ✅ Sí |
| Palabras exactas | ✅ Sí (garantizado) | ⚠️ No garantiza |
| Velocidad | ✅ Muy rápido (índices invertidos) | ✅ Rápido (con HNSW/IVF) |
| Costo setup | Bajo (solo indexar texto) | Medio (generar embeddings) |
| Costo query | Mínimo | Medio (embedding de query) |
| Explicable | ✅ Sí (muestra palabras match) | ⚠️ Difícil (score es abstracto) |
| Escalabilidad | ✅ Millones de docs | ✅ Millones de docs |
Casos de éxito y fallo
Caso 1: Query con sinónimos
Query: "auto"
Documentos:
- Doc A: "El automóvil necesita gasolina"
- Doc B: "El carro tiene 4 ruedas"
Keyword:
- Doc A: ❌ No match (no contiene "auto")
- Doc B: ❌ No match
Semantic:
- Doc A: ✅ Match (embedding de "automóvil" similar a "auto")
- Doc B: ✅ Match (embedding de "carro" similar a "auto")
Ganador: Semantic search ✅
Caso 2: Query con código exacto
Query: "error ABC-12345"
Documentos:
- Doc A: "Error ABC-12345 en el sistema"
- Doc B: "Error ABC-12346 similar"
Keyword:
- Doc A: ✅ Match exacto (contiene "ABC-12345")
- Doc B: ❌ No match (diferente código)
Semantic:
- Doc A: ✅ Match (embedding similar)
- Doc B: ⚠️ Puede tener score alto (embeddings de códigos similares son cercanos)
Ganador: Keyword search ✅ (precisión exacta crítica)
Caso 3: Query conceptual
Query: "cómo mejorar velocidad de mi app"
Documentos:
- Doc A: "Guía de optimización de performance"
- Doc B: "Tips para acelerar tu aplicación"
Keyword:
- Doc A: ⚠️ Match parcial ("velocidad" no aparece)
- Doc B: ⚠️ Match parcial ("mejorar" no aparece como tal)
Semantic:
- Doc A: ✅ Match (embeddings de "mejorar velocidad" ~ "optimizar performance")
- Doc B: ✅ Match (embeddings de "velocidad" ~ "acelerar")
Ganador: Semantic search ✅ (entiende sinónimos e intención)
Matriz de decisión
| Tipo de query | Mejor método | Ejemplo |
|---|---|---|
| Exacta (códigos, nombres, números) | Keyword | "error E404", "artículo 42" |
| Conceptual (temas, preguntas) | Semantic | "¿Cómo optimizar?", "animales" |
| Exploratoria (descubrir relacionados) | Semantic | "temas sobre AI" |
| Legal/médica (precisión crítica) | Keyword + filtros | "diagnóstico ICD-10 J44" |
| Ambigua (múltiples significados) | Híbrida | "banco" (filtrar por contexto) |
Resumen
Puntos clave:
- Keyword: Preciso para exactas, no entiende sinónimos
- Semantic: Entiende significado, no garantiza exactas
- No son excluyentes: Combinar en búsqueda híbrida
- Decisión: Depende del tipo de query
Próxima cápsula: 05-hybrid-search.md — Combinar keyword + semantic.