Skip to content

Search Engines - Elasticsearch vs OpenSearch vs Vespa vs Typesense#

Search engines marry an inverted index with relevance ranking, faceting, and increasingly vector search. They differ in license, scale ceiling, and how easily you can run them.

Side-by-side#

Elasticsearch OpenSearch Apache Solr Vespa Typesense Meilisearch
Owner Elastic NV AWS / community Apache Yahoo open-sourced Typesense Inc Meili
License Elastic / SSPL Apache 2.0 Apache 2.0 Apache 2.0 GPL-3 / commercial MIT
Query Query DSL Query DSL SolrJ / REST YQL REST REST
Vector / ANN Yes (HNSW) Yes (HNSW, Faiss, NMSLIB) Yes (HNSW) Yes (multiple) Yes Yes
Hybrid search Yes Yes Yes Yes Yes Limited
Ops complexity Medium-high Medium-high Medium High (powerful) Low Low
Multi-tenancy Indices, routing Same Cores Native tenants Limited Limited
Best fit Default for log + search OSS license preferred Long-established Apache shops Recommendation + search at Yahoo scale Fast, small/medium search Tiny / instant search

Decision tree#

flowchart TB
  Q[Need search] --> A{Combined search<br/>+ recsys at scale?}
  A -->|yes| Vespa
  A -->|no| B{Apache 2.0 license<br/>mandatory?}
  B -->|yes| OS[OpenSearch or Solr]
  B -->|no| C{Sub-100ms<br/>tiny / instant?}
  C -->|yes| Type[Typesense or Meilisearch]
  C -->|no| ES[Elasticsearch]

    classDef client fill:#dbeafe,stroke:#1e40af,stroke-width:1px,color:#0f172a;
    classDef edge fill:#cffafe,stroke:#0e7490,stroke-width:1px,color:#0f172a;
    classDef service fill:#fef3c7,stroke:#92400e,stroke-width:1px,color:#0f172a;
    classDef datastore fill:#fee2e2,stroke:#991b1b,stroke-width:1px,color:#0f172a;
    classDef cache fill:#fed7aa,stroke:#9a3412,stroke-width:1px,color:#0f172a;
    classDef queue fill:#ede9fe,stroke:#5b21b6,stroke-width:1px,color:#0f172a;
    classDef compute fill:#d1fae5,stroke:#065f46,stroke-width:1px,color:#0f172a;
    classDef storage fill:#e5e7eb,stroke:#374151,stroke-width:1px,color:#0f172a;
    classDef external fill:#fce7f3,stroke:#9d174d,stroke-width:1px,color:#0f172a;
    classDef obs fill:#f3e8ff,stroke:#6b21a8,stroke-width:1px,color:#0f172a;
    class Q,A,B,C service;
    class Vespa,OS,Type,ES datastore;

What you'll get asked#

  • "Elastic vs OpenSearch?" Same lineage (forked 2021 over license). OpenSearch is Apache 2.0 and AWS-led; Elastic has the bigger commercial ecosystem.
  • "Why not Postgres FTS?" PG full-text works for small workloads. Past ~10M docs or complex relevance, dedicated engine wins.
  • "Vector vs hybrid?" Vectors capture semantics; BM25 captures exact match. Hybrid (RRF or weighted) almost always beats either alone.

FAQ#

What is the difference between Elasticsearch and OpenSearch?#

OpenSearch is a community fork of Elasticsearch maintained by AWS after the licence change in 2021. APIs are mostly compatible, but newer Elasticsearch features and vector capabilities have diverged over time.

Should I use Typesense or Meilisearch?#

Both are simple, fast, in-memory search engines. Typesense has stronger faceting and aggregations. Meilisearch has a smoother default ranking and dev experience. Pick by which fits your data shape better.

When does Vespa beat Elasticsearch?#

Vespa wins for very large vector and tensor workloads, multi-phase ranking, and personalised search at billion-document scale. It is operationally heavier than Elasticsearch and has a smaller community.

Is Solr still used in production?#

Yes, especially in enterprises with long-running Lucene investments. New projects usually start with Elasticsearch or OpenSearch because their APIs and tooling are more modern.

Can search engines replace a vector database?#

For mixed text plus vector workloads, modern Elasticsearch, OpenSearch, and Vespa now compete with dedicated vector databases. Pure vector workloads at huge scale still favour Qdrant, Pinecone, or Weaviate.