Drop-in replacement for Elasticsearch or OpenSearch,
simpler and more scalable.

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 demo --query-dsl

Try your query

Ask in plain English or paste Query DSL from your app — it runs against a demo index and shows what Infino supports. Query DSL is not yet on Infino Cloud.

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

Try the live demo ↑

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

Internal 10M-document run. Its full results are not published yet. The published engine benchmarks, with a way to reproduce each one, are on the benchmarks page.

Published runs: infino.ai/benchmarks ↗
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. Cloud meters storage, write tokens, read tokens, and returned bytes. Plans are on the pricing page.

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.