Skip to content

Exofind

Delightful search built on object storage

Full-text search, automatic language analysis, and schema updates without downtime. Nodes answer queries from local disk and coordinate through an S3 bucket alone.
Terminal window
docker run -d --name exofind -p 8080:8080 \
-v exofind-data:/data \
-e EXOFIND_AUTH_ROOT_KEY=exok_quickstart \
ghcr.io/levelfourab/exofind:main-latest

What it does

Object storage is the source of truth

Wipe a node and it pulls the index back from the bucket. Nodes coordinate with conditional writes, without Raft or cluster coordinators.

Search powered by Lucene

Full-text matching with typo tolerance, prefix autocomplete, geospatial filters, nested sub-documents, and k-nearest neighbors (KNN) vector search.

Per-value language analysis

Documents carry their language tag. The engine applies CJK segmentation, stemming, and Scandinavian compound splitting automatically without custom pipeline setup.

Declarative schemas and index generations

Send the schema you want with a PUT request. When a change requires a reindex, Exofind builds a new generation in the background and promotes it while queries continue.

Shared keys without a database

API keys are stored in the bucket. A key created on one node propagates to all nodes within seconds, scoped by permissions and index patterns.

Interchangeable stateless nodes

Read nodes never talk to each other. Nodes answer every query from local disk and scale horizontally behind standard load balancers.

See it searching

Each demo searches a real dataset through a node, and exists to show one thing the engine can do.

Where to go

Who is behind this

Exofind is built by Level Four AB. The engine is open source under the Apache License 2.0, and you can run it without us.

We also work with the teams that use it: index design, deployment on your own object storage, and tuning relevance. Tell us what you are building at hello@levelfour.se.

Exofind is built by Level Four AB and is available under the Apache License 2.0.