Tachyontachyon

Tachyon vs. Elasticsearch

How a single-binary Rust search engine compares to the JVM-based, distributed-by-default Elasticsearch.

Elasticsearch and Tachyon are not really aimed at the same deployment size. Elasticsearch is a distributed system built around Lucene, with clustering, sharding, and a full analytics/observability platform (the "ELK stack") layered on top. Tachyon is a single-node, single-binary search engine that deliberately doesn't try to be a distributed system or an analytics platform — it does full-text search, and stops there.

At a glance

TachyonElasticsearch
LanguageRustJava (JVM)
LicenseApache-2.0Dual: SSPL / Elastic License / AGPL
Runtime dependencyNoneJVM
Distribution modelSingle-nodeDistributed, sharded, clustered by default
RelevanceBM25BM25 (via Lucene)
Typo toleranceBuilt in, always onFuzzy queries, opt-in per query
FacetingBuilt inAggregations framework (far more general)
Vector / hybrid searchNo — see RoadmapYes (dense_vector, kNN)
Analytics / log platformNoYes (Kibana, ELK stack)
Operational footprintOne process, no coordinationCluster, master nodes, shard allocation, JVM tuning
Managed cloud offeringNoElastic Cloud

Scope

Elasticsearch is general-purpose search-and-analytics infrastructure: full aggregation framework, percolation, machine learning jobs, security features, and an entire observability product line built on top of the same engine. Tachyon has none of that. If what you need is Kibana dashboards over log data, or deep aggregation queries, Elasticsearch is doing a fundamentally different job than Tachyon is built for.

If what you need is "search a collection of documents by text, filter it, facet it, sort it, rank it well" — the actual majority use case for application search — Elasticsearch brings a JVM, cluster coordination, and shard management to a problem that doesn't inherently require any of them.

Operational footprint

This is the practical crux. A minimal, production-worthy Elasticsearch deployment means JVM heap sizing, garbage collection tuning, shard and replica planning, and (for a real cluster) multiple nodes with dedicated master eligibility. Tachyon is one binary, one --data-dir, no JVM, no cluster protocol, no shard rebalancing — see Configuration for the entirety of what there is to tune. That gap is the whole reason products like Tachyon, Typesense, and Meilisearch exist.

Licensing

Elasticsearch's license has moved more than once: from Apache-2.0, to a source-available Elastic License / SSPL dual license in 2021, back to offering an AGPL option alongside those since 2024. Tachyon has been Apache-2.0 from the start and isn't going to change that.

Relevance and typo tolerance

Both ultimately use BM25 — Elasticsearch inherits it from Lucene. The practical difference is defaults: Tachyon's typo tolerance is on for every query, scaled to token length automatically (see Typo Tolerance). Elasticsearch's fuzzy matching is opt-in per query (fuzziness parameter) and off by default.

Choose Elasticsearch when

  • You need a distributed cluster that scales past what a single node can hold, with sharding and replication.
  • You need the aggregation framework, machine learning features, or a log/observability platform (Kibana) on the same engine.
  • You need vector/kNN search today.

Choose Tachyon when

  • Your corpus fits on a single node and you don't want cluster operations as a permanent cost.
  • You don't want a JVM in your stack.
  • You want full-text search and nothing else running alongside it.

On this page