OpenSearch y alternativas a ElasticSearch en 2026 | Backend Survivor

OpenSearch y alternativas a ElasticSearch en 2026

Si en 2020 alguien te decía “usá ElasticSearch para búsqueda”, era el consejo correcto. En 2026, la respuesta es “depende”. Y las alternativas son más interesantes que nunca.

El problema con ElasticSearch

Elastic NV cambió la licencia de Elasticsearch a SSPL/ELv2 en 2021. AWS respondió forkando a OpenSearch. Dos años de guerra legal después, la situación es:

  • Elasticsearch (Elastic NV): SSPL/ELv2. Gratis para uso interno, pago para ofrecerlo como servicio.
  • OpenSearch (AWS): Apache 2.0. Fork de Elasticsearch 7.10.2.
  • Ambos comparten ~80% del código base y la API es compatible en la superficie.

Pero la pregunta real no es “Elasticsearch vs OpenSearch”. Es: ¿necesitás un motor de búsqueda dedicado?

El espectro de opciones

1. PostgreSQL + pgvector (la opción aburrida que funciona)

Si tu búsqueda es “textos en español con filtros por fecha y categoría”, PostgreSQL con tsvector y pg_trgm te da el 80% de lo que ElasticSearch ofrece, con una fracción de la complejidad operativa.

-- Búsqueda full-text en PostgreSQL
SELECT id, title, ts_rank(search_vector, query) AS rank
FROM articles, plainto_tsquery('spanish', 'arquitectura cloud') AS query
WHERE search_vector @@ query
ORDER BY rank DESC
LIMIT 20;

Con pgvector agregás búsqueda semántica (embeddings). Para la mayoría de los blogs, docs técnicos, y catálogos de productos, PostgreSQL es suficiente.

Cuándo usar: < 1M documentos, búsqueda full-text + filtros simples, ya usás PostgreSQL.

2. Meilisearch (la opción developer-friendly)

Meilisearch es Rust, rápido, y la API es ridículamente simple. No tiene la complejidad de mapping de ElasticSearch. Configurás un índice, mandás documentos, buscás.

# Indexar
curl -X POST 'http://localhost:7700/indexes/articles/documents' \
  -H 'Content-Type: application/json' \
  --data-binary @articles.json

# Buscar
curl 'http://localhost:7700/indexes/articles/search?q=redis'

Meilisearch maneja typo-tolerance, faceting, y filtering out of the box. No necesitás configurar analyzers, tokenizers, ni mappings complejos. Funciona.

Cuándo usar: < 10M documentos, búsqueda para usuarios finales, necesitás results en < 50ms, no necesitás aggregations complejas.

3. Typesense (el punto medio)

Typesense es C++, typo-tolerante, y tiene features que Meilisearch no tiene: geo-search, conjunctive faceting, y un modelo de clustering más maduro. La API es similar en simplicidad.

Cuándo usar: necesitás geo-búsqueda, tenés entre 1M-50M documentos, querés typo-tolerance sin configurar nada.

4. OpenSearch (cuando necesitás el poder de Elastic)

Si venís de ElasticSearch y tenés queries complejas, aggregations, o un equipo que ya conoce el ecosistema, OpenSearch es la migración natural. La API es compatible, los índices se migran con snapshot/restore, y las queries DSL funcionan igual.

Cuándo usar: ya tenés ElasticSearch, necesitás aggregations complejas, tenés > 50M documentos, tu equipo conoce el stack.

Matriz de decisión

CriterioPostgreSQLMeilisearchTypesenseOpenSearch
Complejidad operativaMínimaMínimaBajaAlta
Full-text qualityBuenaExcelenteExcelenteExcelente
Typo toleranceNoConfigurable
Escala práctica< 1M docs< 10M docs< 50M docsIlimitada
AggregationsLIMITNoBásicasCompleto
Búsqueda semánticapgvectorNoNoPlugins
Coste infra$0 (ya lo tenés)$$$$$

Mi recomendación para 2026

  • Blog / docs técnicas: PostgreSQL full-text o Meilisearch. No necesitás más.
  • E-commerce con facets: Typesense o Meilisearch.
  • Plataforma enterprise con search complejo: OpenSearch (o quedate en Elastic si ya lo tenés).
  • Búsqueda semántica / RAG: PostgreSQL + pgvector para empezar. Si escala, evaluá Qdrant o Weaviate.

La lección: antes de agregar ElasticSearch a tu stack, preguntate si PostgreSQL no resuelve el 80% del problema. La respuesta casi siempre es sí.