# replacing elasticsearch or opensearch? the drop-in path →

SQL, full‑text, vector, & hybrid search, on Parquet.

Millisecond queries across a billion docs, for 10× less.

your app cache RAM Disk object storage s3 · gcs · azure blob · any s3-compatible

infino authors --list

From the creators of OpenSearch →

infino cost

Estimate the cost of your workload on Parquet.

storage $0.30 per GB-month
10M docs 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.013 WT each · 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 i Query result payload sent back to the client. methodology →
10 docs returned per query 10 GB returned
$1
infino $75/month account minimum
Elasticsearch $1,314

Elastic Cloud Hosted · Platinum

data nodes2 nodes · 2 zones × 8 GB · $0.09/GB-hr$1,051
Kibana2 × 2 GB$263
master quorumdata nodes + included 1 GB tiebreaker$0
total$1,314
methodology →
17.4× 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
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 →

infino bench --latency

See the latest benchmarks.

Workload Cohere, 768 dimensions, 10M docs, top-10
p50
5ms 314ms
p99
12ms 850ms
  • Warm cache
  • Cold cache

infino compatibility

See how it fits into your existing stack.

Infino

query DSL

elasticsearch opensearch

parquet

snowflake databricks

catalog integration

apache iceberg apache hudi

Learn more about integration →

cat query.sql

Accurate, token-saving, & expressive querying.

Table-valued functions let search results compose as ordinary SQL tables, so one query replaces several. Agents make fewer LLM round trips; humans find what they need faster.

query.sql
-- one query: hybrid search + SQL filters

SELECT   _id, title, score
FROM     hybrid_search(                       -- FTS + vector, fused by RRF
           'logs', 'body', 'disk full',       --   the text side
           'embedding', :q, 50                --   the vector side, top 50
         )
WHERE    level = 'error'                      -- pushed-down filter
  AND    ts > now() - interval '24 hours'     -- on the same pass
ORDER BY score DESC                           -- one fused ranking
LIMIT    10;

compare workload costs →

cat analytics.sql

Analytics & Search Combined.

Search results are a relation, so follow-up questions stay in SQL, inline in the same query. Getting from “find disk-full errors” to “which team had them” takes one query, for a person or an agent.

analytics.sql
-- a ranked search is a relation: join it, group it, aggregate it

SELECT   s.team,
         count(*) AS hits,                    -- rows per team
         avg(h.score) AS relevance            -- mean fused score
FROM     hybrid_search(                       -- the same hybrid search
           'logs', 'body', 'disk full',
           'embedding', :q, 1000
         ) AS h
JOIN     services s ON s.id = h.service_id    -- a plain table
WHERE    h.ts > now() - interval '7 days'
GROUP BY s.team
ORDER BY hits DESC;

hybrid search →

infino spec

search
full-text · vector · hybrid
index
BM25 (PFOR-delta, FST) · HNSW · OPANN + Sq16
engine
Rust
language
SQL (Apache DataFusion) · REST · Query DSL
storage
object storage, S3 · GCS · Azure Blob · on-prem
format
Apache Parquet
deploy
on-prem · self-hosted cloud · hosted cloud
core license
Apache-2.0

architecture →

→ index created on s3://your-bucket · apache-2.0

github.com/infino-ai/infino ↗