Skip to main content
Let’s get Infino running in a few minutes. We’ll build a small knowledge base (a handful of help-center notes) and search it four ways: by keyword, by meaning, by both at once (hybrid), and with SQL. Pick your language; each step builds on the one before it. How do you want to use Infino? This walkthrough uses the SDKs; the CLI and the MCP server do the same retrieval from the terminal or an AI agent.

SDK

Python, Node, or Rust — the walkthrough on this page.

CLI

Create, ingest, and search from the terminal or a coding agent — no code.

MCP server

Expose these searches as tools to an AI agent (Claude, Cursor, …).
1

Install

The Node examples below use import, so the file has to be a module. npm init -y writes "type": "commonjs", and running an import under that fails with Cannot use import statement outside a module. Either add "type": "module" to your package.json or save the file as .mjs.
Infino re-exports the Arrow crates it uses, so you don’t add them separately or match versions — reach them as infino::arrow_array and infino::arrow_schema (as the examples below do). update / delete take DataFusion predicates (col, lit); if you use them, add datafusion-expr matching Infino’s DataFusion version (cargo tree -p infino).Infino also installs the mimalloc global allocator by default. If you embed it in a process that already sets a global allocator, turn it off: infino = { default-features = false }.
2

Connect

First, open a connection. "memory://" keeps everything in memory for this walkthrough; point it at "./data" or an "s3://bucket/prefix" URI when you want your data to stick around. To run the same walkthrough against the hosted service, point it at "https://<host>/<database>" and pass an API key: see the Infino Cloud quickstart. Everything after the connect line is the same either way.
3

Create a table

Now create a table. You give it a schema and say which columns to index: a full-text index on the text, and a vector index on the embedding.
4

Add data

Let’s add a few notes. The embed helper stands in for a real embedding model so the example runs on its own. It’s a 16-dim one-hot by topic (0 = billing, 1 = appearance). Your own embeddings will be dense and higher-dimensional; see Embeddings.
5

Search it

Now the part you came for. The same table answers every kind of query: keyword, meaning, hybrid, and SQL.
Each search returns rows carrying the projected body. With this tiny corpus you get:
Expected output
keyword matched the BM25 terms; semantic ranks the billing notes first; hybrid fuses the two rankings, so the exact keyword match leads while the semantically close note follows; sql returns the two help-center rows. From here, feed the retrieved passages to your model as grounding context.

Next steps

Core concepts

The mental model: one Parquet copy, indexed and queried four ways.

Guides

Tables, embeddings, indexing, search, and storage.

Integrations

LangChain, Vercel AI SDK, CrewAI, and MCP.

SQL Reference

Query and compose search with SQL.
Last modified on August 18, 2026