LabHub

Blog

Next-Gen Search Engines 2026 — Meilisearch vs Typesense vs Elasticsearch vs OpenSearch vs Quickwit vs Vespa Deep Dive (The Landscape After Elastic)

한국어English日本語

Prologue — Elasticsearch Is Still a Giant, But the Landscape Has Scattered

In 2018, the answer to "what search engine should we use?" was essentially one word. Elasticsearch. ELK was Elasticsearch for logs, Elasticsearch for site search, and (somehow) Elasticsearch for recommendations.

In 2026, the same question splits into at least five branches.

This post compares the search engines honestly as of May 2026. The strengths and weaknesses of each, the reality of hybrid search (full-text + vector + reranker) that has entered every engine, and a decision framework for "when to pick what."

One-line spoiler: The "full-text vs vector" dichotomy is dead. The 2026 answer is almost always hybrid. The question is who makes hybrid the smoothest.


1. The Landscape — Seven Engines Plus Some

Let's draw the map first, so categories don't collapse.

CategoryEngineOne line
in-app / site search (simple)Meilisearch, TypesenseRust/C++, lightweight, self-host friendly
general-purpose search and analyticsElasticsearch, OpenSearchthe giant plus the AWS fork
log / observability searchQuickwit, Loki, ElasticsearchS3-based is the new shape
AI-serving searchVespareal-time ranking, tensors, ML are first-class
SaaS site searchAlgoliahosted-only, very fast
ultra-lightweightSonicautocomplete-tier, Rust
search + analytics blurApache Doris, StarRocks, ClickHouseOLAP encroaches on search
pure vector DBsPinecone, Weaviate, Qdrant, Milvus, LanceDBcovered separately

Most people don't evaluate all of these at once. With three scenarios — in-app search, log search, RAG search — the candidate list narrows naturally.


2. Elasticsearch — The Giant Is Alive

Elasticsearch is not dead. In 2024 and 2025 it fired back in two ways.

2.1 License — From SSPL / Elastic License v2 to AGPL / Elastic v3

In late 2024, Elastic re-opened Elasticsearch and Kibana under AGPL v3 (alongside Elastic License v2). That decision was a clear signal aimed at the OpenSearch camp, and it revived energy in OSS-friendly clouds — Bonsai, Elastic Cloud, and self-hosting. It does not mean AWS managed Elasticsearch comes back — AWS has fully committed to OpenSearch.

The licensing essentials.

2.2 ESQL — A New SQL-Like Query Language

In Elasticsearch 8.11+, ESQL (Elasticsearch Query Language) went GA. Instead of writing Lucene's query DSL directly, you write a pipe-based SQL-ish syntax that does the same job.

FROM logs-*
| WHERE @timestamp > NOW() - 1 hour AND http.status >= 500
| STATS count(*) BY service.name
| SORT count DESC
| LIMIT 10

ESQL's meaning is simple. "For logs and metrics, Elasticsearch moves closer to OLAP" — a surface that can compete with Apache Doris and ClickHouse. ESQL uses a path optimized for stats and aggregations rather than the inverted index.

2.3 Vector Search and Hybrid as First-Class

Since 8.x late, dense vector fields and HNSW indexes, plus BM25 + kNN hybrid search, are standard features. learning_to_rank and ELSER (Elastic's trained sparse embeddings) are available too, making ES a respectable option to sit at the center of a RAG pipeline without a separate vector DB.

2.4 Elasticsearch Strengths and Weaknesses


3. OpenSearch — Politics and Engineering of the AWS Fork

OpenSearch, forked by AWS in 2021 in reaction to the SSPL change, is no longer a "fork" after five years — it's its own project. As of 2026.

Two common reasons to pick OpenSearch.

  1. You live on AWS and want managed search — Amazon OpenSearch Service is the natural pick.
  2. You need to avoid Elastic License v2's SaaS resale restriction — managed-search vendors whose product itself exposes a search engine.

For most in-app and log scenarios, ES and OpenSearch are roughly feature-equivalent. New ES features like ESQL arrive in OpenSearch in a different shape (PPL — Piped Processing Language), so once you've written code against one query language, switching costs are real.


4. Meilisearch — Minimalism in Rust

Meilisearch is a Rust-written search engine specialized for in-app search. As of May 2026 it's on the v1.13+ line. One line: "Algolia-like experience, self-hosted."

4.1 Why People Love It

4.2 The 2026 Additions — Vector and Hybrid

Meilisearch introduced dense vector search in v1.6, and through 2025 embeddings, rerankers, and hybrid stabilized.

// Meilisearch 1.x — hybrid search
const results = await client.index('products').search('blue runners', {
  hybrid: {
    embedder: 'openai',
    semanticRatio: 0.7,
  },
  limit: 20,
})

semanticRatio: 0.7 is "70 percent vector, 30 percent BM25." Zero is full-text only, one is vector only.

4.3 Meilisearch Strengths and Weaknesses

When to pick it — product catalogs, document search, blog search, small-to-medium in-app search. Almost every case of replacing Algolia with self-hosting.


5. Typesense — Another In-App Powerhouse in C++

Typesense is a search engine written in C++. It targets the same scenarios as Meilisearch with a slightly different philosophy.

5.1 How It Differs From Meilisearch

5.2 The 2026 Additions — Conversational, Vector, Hybrid

Typesense added vector search, hybrid, and natural-language search from v0.25+. "Conversational search" — an endpoint that answers natural-language questions directly via LLMs — went GA in v28.x.

const result = await client.collections('products').documents().search({
  q: 'red running shoes under 100',
  query_by: 'name,description,embedding',
  vector_query: 'embedding:([], k: 50, alpha: 0.4)',
})

alpha: 0.4 is the same idea as Meilisearch's semanticRatio — the weight between full-text and vector.

5.3 Typesense Strengths and Weaknesses

When to pick it — multi-tenant in-app search for SaaS, in-app search that needs distribution from day one.


6. Quickwit — S3-Native Log Search, and the Datadog Acquisition

Quickwit is the most recent big event in the search-engine landscape. A Rust-written log-specialized search engine, with object storage (S3, GCS, Azure Blob) as primary storage — which is the decisive difference from ES.

6.1 Why It Matters — "Just Leave It On S3, The Cost Is Insane"

Anyone who has run ES on logs knows the pain. Keeping time-series on hot tier means endless SSDs, and frozen-tier, snapshot, and ILM settings eat half your ops time.

Quickwit's model is the opposite.

6.2 The 2024 Datadog Acquisition — What Happened Next

In October 2024 Datadog acquired Quickwit. The market's biggest question post-acquisition was the OSS fate. The 2025–2026 answer: "Maintained, but core development moves deeper into Datadog's internal log and trace systems."

6.3 Quickwit's Data Model

Two differences from ES.

  1. Append-only, time-series first — updates are limited. Optimized for logs and traces.
  2. Schema-less is first-class — accepts JSON straight and indexes it. Dynamic field mapping is smoother than ES.

Queries support an Elasticsearch DSL-like shape, and OpenTelemetry, Jaeger, and Grafana integrations are first-class.

6.4 Quickwit Strengths and Weaknesses

When to pick it — log, trace, observability search, putting cold data on S3 to keep the bill sane.


Vespa sits in an interesting place. It started as Yahoo!'s internal search and recommendation infrastructure, was open-sourced in 2017, and spun out from Verizon Media as Vespa.ai in 2023. As of 2026 it's on v8.x.

Spotify, Wikipedia, Pinterest — their search and recommendation systems run on Vespa. What's special.

7.1 The Decisive Differences From Other Engines

That's why it dominates RAG, recommendation, and real-time AI serving.

7.2 ColBERTv2 — The Reranker Vespa Handles Most Smoothly

ColBERTv2 is the efficient middle ground between dense retrieval and a cross-encoder reranker. It computes late interaction with per-token embeddings, and Vespa makes it first-class — ColBERT tensors are stored directly in the index, and the ranking step does efficient MaxSim computation.

7.3 Vespa Strengths and Weaknesses

When to pick it — the core of a recommendation system, the actual core of RAG, places where both retrieval and ranking are ML-driven.


8. Algolia, Sonic, Apache Doris, StarRocks — The Rest

Algolia has no self-hosted option. SaaS only. That's the strength and the weakness.

When to pick it — low-traffic in-app search that ships fast, site or blog search. Once traffic or record count grows, migrating to Meilisearch or Typesense is a common pattern.

8.2 Sonic — Extremely Lightweight Autocomplete

Sonic is a Rust-written extremely lightweight search engine. Specialized for autocomplete / suggest. SQLite-like index file, nearly zero memory footprint.

When to pick it — search is essentially autocomplete and a different tool handles main search. In 2026, Meilisearch and Typesense handle most autocomplete well too, so Sonic's space has narrowed.

Columnar OLAP engines like Doris, StarRocks, and ClickHouse started supporting inverted indexes and text search, opening a new scenario: "search and analytics on the same data." It's especially attractive for log and event data, where analysis and search hit the same dataset.

When to pick it — analytics is primary and search is secondary. Running main site search on this is still a stretch.


9. Hybrid Search — The 2026 Default

The "full-text vs vector DB" split is over. In 2026, search is almost always hybrid. Here's the structure.

9.1 The Three Layers of Hybrid

1. retrieval (first pass)
   - BM25 (full-text, lexical match)
   - Dense vector (semantic, embedding ANN)
   - Merge the two results via RRF or a weighted sum

2. reranking (second pass)
   - A cross-encoder or ColBERT-style model
   - Re-rank only the top 50 to 200 results
   - Expensive but a big quality lift

3. business logic (third pass)
   - Popularity, recency, personalization, business rules

How each engine implements these three layers differs.

9.2 RRF (Reciprocal Rank Fusion) — The Standard Merger for Hybrid

How do you merge two ranked lists (BM25 results and vector results)? The most common method is RRF.

RRF_score(d) = sum( 1 / (k + rank_i(d)) )  for each ranker i

k is usually 60. Simple but very robust. ES, OpenSearch, Vespa, Meilisearch, and Typesense all support RRF or a variant.

9.3 Rerankers — Cohere Rerank, Voyage, ColBERT

Reranking usually runs only on the top 50 to 200 retrieved results. Anything more and cost explodes.

9.4 Hybrid Support — Side-by-Side

EngineBM25dense vectorRRFexternal rerankerColBERT / late-interaction
Elasticsearchyesyes (HNSW)yescall yourselflimited
OpenSearchyesyes (k-NN)yescall yourselflimited
Vespayesyes (HNSW + more)yesin-index possiblefirst-class
MeilisearchyesyessemanticRatioembedder integrationnone
Typesenseyesyesalphacall yourselfnone
Quickwityeslimited--none
Weaviatelimitedyeshybrid querymodulenone
QdrantsparseyesRRFexternallimited

10. Full-Text vs Vector DB vs Both — A Decision Framework

10.1 Full-Text Alone Is Enough When…

→ Meilisearch, Typesense, Quickwit, Elasticsearch, or OpenSearch, depending on the scenario.

10.2 Vector Alone Is Enough When…

Almost never. Pure vector search is weak for short queries, exact matches, and identifier search. An environment with keyword search beside it is almost always better.

Exception — image, audio, video similarity search where no text index exists. Then Pinecone, Qdrant, Milvus, Weaviate, or LanceDB are natural.

10.3 Hybrid Is the Answer (Most of the Time)

→ Vespa, Elasticsearch, OpenSearch, Meilisearch hybrid, or Typesense hybrid, balancing scenario vs ops overhead.


11. Capability Matrix — At a Glance

CapabilityElasticsearchOpenSearchMeilisearchTypesenseQuickwitVespaAlgolia
Full-text (BM25-ish)excellentexcellentgoodgoodgoodgoodexcellent
Vector searchgood (HNSW)good (k-NN)goodgoodlimitedexcellentside feature
Hybrid searchyes (RRF)yes (RRF)yes (ratio)yes (alpha)limitedvery smoothyes
Reranker integrationexternal callexternal callembedderexternal call-in-indexpartial
Distributedexcellentexcellentfairgoodgood (S3)excellentSaaS only
Logs / time-seriesgoodgoodunsuitedunsuitedexcellentunsuitedunsuited
in-app / site searchgoodgoodexcellentexcellentunsuitedgood (overkill)excellent
RAG retrievalgoodgoodfair to goodfair to goodunsuitedexcellentfair
Ops complexityhighhighvery lowlowmediumvery highSaaS only
Costexpensive (hot tier)expensivecheapcheapvery cheap (S3)expensiveexpensive at scale
LicenseAGPL + ELv2Apache 2.0MITGPL/SSPLApache 2.0Apache 2.0proprietary

12. Scenario Recommendations — In-App, Logs, RAG

Three scenarios, each as a tiny decision tree.

12.1 In-App Search (Site, Product, Document)

- Low traffic, ship fast: Algolia
- Self-host, simple: Meilisearch
- Self-host, multi-tenant: Typesense
- ES/OS already in place, ops capable: Elasticsearch / OpenSearch
- Search needs ML ranking: Vespa (accept the ops cost)

12.2 Logs and Observability

- Cost first, large data: Quickwit (self-hosted)
- Managed, AWS: Amazon OpenSearch Service
- Managed, multi-cloud: Elastic Cloud, Grafana Cloud Loki
- Already on Datadog: Datadog (Quickwit underneath)

12.3 RAG and Real-Time AI Serving

- Only first-stage retrieval needed: Meilisearch/Typesense hybrid + external reranker
- Full ranking pipeline needed: Vespa
- ES/OS already in place, ops capable: ES/OS dense_vector + reranker
- Image/audio-first: Pinecone, Qdrant, Milvus, Weaviate
- Postgres is the source of truth: pgvector + external reranker

13. Real Cases — Who Uses What

Patterns visible in this distribution.


14. Operating Cost and Complexity — Where the Real Cost Lives

The variable most often ignored in engine choice is operating cost. Not the license sticker, but human time + infrastructure + data movement.

14.1 Infrastructure Cost

Order-of-magnitude differences.

14.2 Operating Time Cost

14.3 Migration Cost

Before ripping out an engine because the license looks expensive, add up migration + ops time + learning cost.


If we summarize May 2026 in one line.

"Elasticsearch is still a giant, in-app and logs split off, AI-serving was taken by Vespa, and hybrid landed in every engine."

Decision Checklist

Anti-Patterns

  1. "Elasticsearch does it all" — using ES for every scenario blows up ops cost.
  2. "One vector DB for hybrid and full-text" — keyword-match accuracy collapses.
  3. "Quickwit for in-app search" — weak updates, scenario mismatch.
  4. "Vespa for all search" — ops complexity is overwhelming compared to in-app.
  5. "Algolia at infinite scale" — beyond tens of millions of records, evaluate self-host.
  6. "OS equals ES" — after 7.10, API and feature drift accumulate.
  7. "Hybrid isn't necessary" — in 2026 user expectations disagree.

Coming Up

Candidates next — First 90 Days With Vespa — a Spotify-Style Recommender Self-Host Guide, Self-Hosting Quickwit — Log Search on S3 + Kubernetes, RAG in an Hour With Meilisearch + Cohere Rerank.

"Search is not a database. Search is user experience. The tool gets picked at the end of that thought."

— Next-Gen Search Engines 2026, end.


References

Comments

No comments yet.

Sign in to leave a comment