Infino vs Elasticsearch
Elasticsearch is a JVM cluster that keeps your data on its own disks and bills you to keep that cluster hot. Infino keeps one copy in your object-storage bucket and searches it there, with full-text, vector, and SQL in one engine.
diff --stat elasticsearch infino
The short answer
Both run BM25, vector, and hybrid search. The difference is everything around the search: where the data lives, what you operate, and what you pay for.
- Infino keeps one copy of your data, in your bucket, with the indexes inside the files. Elasticsearch keeps primaries, replicas, and snapshots.
- Durability comes from the object store, not from replica shards you fund.
- Full-text, vector, and SQL share one engine and one copy of the rows: 6.2 ms warm median full-text on 10M docs over real S3, 16.6 ms hybrid.
cat ARCHITECTURE.diff
Where the data lives
Both architectures end at object storage. They just disagree about what it’s for.
- Elasticsearch shards your documents across stateful JVM nodes and searches those disks. The bucket sits behind the cluster and holds snapshots it hopes never to restore.
- Infino puts the bucket in the read path. Workers are compute over it: they cache hot byte ranges locally and keep nothing permanent.
- That inversion is the whole comparison. Everything else on this page follows from it.
infino cost --compare elasticsearch
Why the bill is different
Count the copies of a gigabyte, and where each one sits.
- Elasticsearch keeps at least three: primary shards on hot nodes, replicas in a second zone, snapshots in a bucket. Two of them live on always-on cluster media, with JVM heap sized over them.
- Infino keeps one, in your bucket, and it is the searchable one. At 10M docs, the full-text corpus measured 18.72 GiB raw and 6.17 GiB stored, about a third.
- Queries are metered per use, not by cluster-hour: the 10M-doc run works out to $0.14 per million full-text queries, with storage at $0.15 per month.
cat RUNBOOK.diff
What you stop operating
A search cluster is a distributed stateful system you run. Infino moves the state to the object store, and most of the runbook goes with it.
| task | elasticsearch | infino |
|---|---|---|
| capacity | size the cluster for the hottest hour; resize means rebalancing shards | workers start on demand; storage just grows in the bucket |
| durability | replica shards you provision, place across zones, and pay for | the object store’s durability; no replicas to fund |
| node loss | shard recovery and rebalancing while the cluster is degraded | another worker starts and reads the same bucket; the data was never on the node |
| retention | hot-tier gigabytes are expensive, so you delete or tier old data | bucket-rate gigabytes, so you keep it and keep it searchable |
| backups | snapshot repositories and lifecycle policies to manage | manifests give snapshots and time travel in place; the bucket is the durable copy |
| upgrades | rolling restarts across stateful nodes, version-locked shards | replace stateless workers; nothing on them to migrate |
infino diff --features
Capability by capability
On search itself the two are close. They split on SQL, the file format, and the ecosystem.
| capability | elasticsearch | infino |
|---|---|---|
| keyword search | BM25 | BM25 |
| vector search | kNN, HNSW graphs | ANN, quantized IVF |
| hybrid ranking | RRF across sub-queries | RRF in one query, one pass |
| sql | partial: ES|QL and a SQL plugin | full SQL via DataFusion; search runs as table functions |
| data format | engine-private segment files | standard Parquet; DuckDB, pandas, and Spark read the same files |
| where data lives | the cluster’s disks; a bucket holds backups | your bucket, searched in place |
| dashboards & agents | Kibana, Beats, Logstash, APM: a decade of head start | REST + Arrow + SQL; bring your own dashboards |
| license | AGPLv3 / SSPL / Elastic License 2.0 | Apache-2.0, no feature gates |
cat TRADEOFFS.md
Where Elasticsearch is still the better fit
Some of what you pay a cluster for, you get. Here is what Infino does not give you.
- A cluster that pins its working set in RAM has a faster best case. Infino’s warm median at 10M docs is 6.2 ms full-text and 16.6 ms hybrid, over real S3.
- Cold starts exist. The first full-text query on an idle 10M-doc table takes about half a second while the cache fills, and opening a 10M-vector index cold takes a couple of seconds. Elasticsearch is always warm because you pay it to be.
- Kibana, alerting, APM, Beats, Logstash: the suite around the search has no Infino equivalent. You get REST, Arrow, and SQL, and you bring your own dashboards.
- Heavy single-document churn favors Elasticsearch. Infino is append-only underneath: updates and deletes write new files and commit a new manifest, which suits batch and stream ingest better than constant point mutations.
infino migrate --from elasticsearch
How migration works
Migration is a re-ingest. There is no converter for Elasticsearch segments, so documents come out of the cluster and land in tables.
- Export with the scroll API or the pipeline you already run.
- Append into Infino tables over REST, Arrow or JSON. Bulk ingest measured 76.9K docs/s at 10M docs.
- Queries are rewritten, not translated: match becomes bm25_search, kNN becomes vector_search, RRF becomes hybrid_search or a SQL table function.
- Run both against real traffic, compare, then move reads. The cluster retires when you say so.
cat FAQ.md
What is the main difference between Infino and Elasticsearch?
Where the data lives. Elasticsearch stores and searches your documents on the cluster’s own disks and maintains replicas for durability, so you run and pay for a stateful cluster around the clock. Infino stores one copy in your object-storage bucket as Parquet files with the search indexes inside, and stateless workers search it there, so durability is the bucket’s job and compute scales separately from the data.
Is Infino a drop-in replacement for Elasticsearch?
No. Infino has its own REST API and SQL surface rather than the Elasticsearch query DSL, so migrating means re-ingesting documents and rewriting queries. Most searches map directly: a match query becomes a bm25_search call, a kNN query becomes vector_search, and RRF becomes hybrid_search or a SQL table function.
Is Infino faster than Elasticsearch?
Both are fast enough for interactive search; the difference is what you pay to get there. Infino answers in 6.2 ms full-text and 16.6 ms hybrid, warm median on 10 million docs over real S3, without holding a cluster in RAM. A cluster that pins its working set in RAM has a faster best case, and you fund that RAM around the clock. The gap between the two shows up in the bill and the runbook, not the user experience.
Is Infino cheaper than Elasticsearch?
Usually, and the gap widens with data size and retention. Elasticsearch bills for a cluster sized for peak: replica copies, JVM heap headroom, block storage, snapshots, and cross-zone traffic, all around the clock. Infino meters three things at usage rates: data stored in your bucket, data written, and data queried. The pricing page has a calculator built on Elastic Cloud’s published rates.
Does Infino support hybrid search like Elasticsearch’s RRF?
Yes. BM25 and vector results are fused with reciprocal rank fusion inside a single query, measured at 16.6 ms warm median on 10 million docs over real S3. The same fusion is callable from SQL as a table function, so hybrid results can join against the rest of your data.
Can Infino replace the ELK stack for log search?
For search and retention, yes: logs live as Parquet in your bucket, stay queryable by keyword and SQL, and retention at bucket rates means you stop deleting data to save money. For the rest of the suite, no: Kibana, alerting, and APM have no Infino equivalent, and you bring your own dashboards over its SQL and REST APIs.
How does Infino handle high availability without replica shards?
Each database runs on at least two separate nodes, and durability comes from the object store rather than from copies the cluster maintains. Losing a node loses a worker process, not data: another worker starts, reads the same bucket, and serves. There is no shard recovery because there are no shards to recover.
How do I migrate from Elasticsearch to Infino?
Export with the scroll API or the pipeline you already have, append into Infino tables over REST in Arrow or JSON, run both systems against real traffic while comparing results, then move reads over. There is no in-place converter for Elasticsearch segments. An engineer will walk through the query mapping with you.
What license is Infino under compared to Elasticsearch?
Infino’s core engine is Apache-2.0 with no feature gates. Elasticsearch is triple-licensed under AGPLv3, SSPL, and the Elastic License 2.0.