Drop-in Elasticsearch or OpenSearch
replacement, 10× cheaper.

Infino supports Query DSL, so existing Elasticsearch or OpenSearch applications don’t need to change.

your application same Query DSL elasticsearch retires OBJECT STORAGE docs.sf.parquet
infino cost --compare

Infino is ~10× cheaper than Elastic

The calculator compares a full-text mix against Elastic Cloud Hosted and Amazon OpenSearch Service at published AWS us-east-1 list rates.

storage $0.30 per GB-month i Stored documents follow monthly writes, since a month of ingest has to land somewhere. Shorter retention lowers both. methodology →
10M docs · tracks writes 10 GB billed
$3
write tokens $0.15 per 1k WT i Write tokens measure ingest work. Batched writes assumed. methodology →
1M docs written · 0.38 WPS avg 0.013 WT each · 1 GB · 13K WT
$2
read tokens $0.05 per 1k RT i Read tokens measure query work. Pinned tables assumed at higher volumes. methodology →
1M queries · 0.38 QPS avg 1.40 RT each · 1.4M RT
$70
returned bytes $0.05 per GB returned
10 docs returned per query 10 GB returned
$1
infino $75/month account minimum
Elasticsearch $788

Elastic Cloud Hosted · Platinum

data nodes2 nodes · 2 zones × 4 GB · $0.09/GB-hr$526
Kibana2 × 2 GB$263
master quorumdata nodes + included 1 GB tiebreaker$0
total$788
methodology →
10.5× more
OpenSearch $1,751

OpenSearch Service

data nodes3 × r6g.2xlarge.search · $0.669/hr$1,465
masters3 × m6g.large.search$280
EBS gp344 GB$5
automated snapshotsincluded · 14-day retention$0
total$1,751
methodology →
23.2× more

Postgres omitted at this scale i One RDS node cannot satisfy the RAM, vCPU, or storage requirement. Standard PostgreSQL does not shard horizontally. methodology →

Pinecone omitted at this scale i No published Dedicated Read Nodes configuration covers this working set (largest published example is 1.4 billion vectors), and on-demand exceeds the 2,000 RU/s index limit. methodology →

Infino Cloud Pricing. methodology →

cat request.json

Your queries keep working

Point existing clients at Infino. Compatible Query DSL requests keep the same shape; unsupported Lucene features are listed below.

request.json
// POST /tickets/_search · compatible request
{
  "query": {
    "bool": {
      "must":   { "match": { "body": "disk full" } },
      "filter": { "term":  { "level": "error" } }
    }
  },
  "size": 10
}

// → same request shape and client · answered from Parquet in your bucket
cat upgrade.sql

SQL joins on search results

In Infino a ranked search is a relation, so it joins against the rest of your data in the same statement.

upgrade.sql
SELECT   p.name AS plan, count(*) AS tickets
FROM     hybrid_search('tickets', 'body', 'disk full',
                       'embedding', :q, 5000) h    -- keyword + vector, fused
JOIN     accounts a ON a.id = h.account_id          -- a plain table
JOIN     plans    p ON p.id = a.plan_id
GROUP BY p.name
ORDER BY tickets DESC;

-- → search joined to your business tables

hybrid search →

cat RUNBOOK.diff

A file-and-compute operating model

Elasticsearch and OpenSearch organize data as shards on cluster nodes. Infino separates durable Parquet in object storage from the compute that reads it.

  • Table schemas replace index mappings; a new field becomes a column.
  • Object storage provides durability, while local RAM and NVMe hold disposable cached data.
  • Retained data grows in the bucket and query compute scales independently.
infino bench --latency

Measured search latency

Internal External
Workload Cohere, 768 dimensions, 10M docs, top-10
p50
5ms 314ms
p99
12ms 850ms
  • Warm
  • Cold
infino migrate --from elasticsearch

How migration works

  • Export with the scroll API or the pipeline you already run.
  • Append into Infino tables in your bucket; indexing happens on write.
  • Dual-run both systems against real traffic and compare results and cost.
  • Cut reads over. For compatible Query DSL queries, this is an endpoint change.
cat TRADEOFFS.md

Compatibility and tradeoffs

  • Compatible Query DSL requests, bulk/index clients, BM25, vector, and hybrid search retain familiar interfaces.
  • Data lands as open Parquet and gains DataFusion SQL over the same rows, with object-storage retention and independently scaled compute.
  • Infino dashboards can be built through the MCP server; infino-analytics is a reference implementation.

vs elasticsearch / opensearch →

cat FAQ.md

Migration questions

Will existing Elasticsearch queries and clients work with Infino?

Infino implements a supported Query DSL subset, so compatible clients and requests keep their shape. Lucene-specific analyzers, span queries, stop words, distance, and proximity require different queries. Bulk/index clients can be repointed after validating pipeline-specific behavior. Infino has no native dashboard UI; dashboards can be built through its MCP server, while Kibana and OpenSearch Dashboards remain tied to their existing platforms. Migration reindexes documents into Parquet and dual-runs representative traffic before cutover.

How does the operating model change?

Durable data grows as Parquet files in object storage, while compute reads and caches the working set. Table schemas replace mappings, and capacity scales independently from retained data.

Is Infino cheaper than Elasticsearch or OpenSearch?

Infino keeps one searchable copy in object storage, reducing the hot storage and replica capacity carried by a traditional search cluster. The calculator below compares Infino with Elastic Cloud Hosted and Amazon OpenSearch Service using published AWS us-east-1 list rates.

What does SQL add?

Search results become relations. A ranked hybrid search can join an accounts table, group by plan, or window by week inside one DataFusion query. Elasticsearch offers ES|QL and a SQL plugin; Infino exposes search as table-valued functions inside SQL.

How does migration work?

Export with the scroll API or the pipeline you already run, append into Infino tables, then dual-run representative traffic. Requests inside the supported Query DSL subset retain their shape; Lucene-specific features require an alternate query.

Does this apply to OpenSearch too?

Yes. The same supported Query DSL subset and migration path apply to OpenSearch. Ranked results may differ, and Lucene-specific analyzers, span queries, stop words, distance, and proximity require alternate queries.