Hybrid search for your Elasticsearch cluster

Lexical + semantic retrieval in one query. No second vector database, no external embedding service — it runs on the Elasticsearch you already operate.

1

Lexical match

BM25 finds documents that share your query's actual words.

2

Semantic match

Elasticsearch's built-in inference finds documents that share the meaning.

3

Merged ranking

Reciprocal Rank Fusion combines both into one relevance-ranked result set.

Filter with category:incident-response or year:2025.

Deploy on your own cluster

RetrievalKit runs on the Elasticsearch infrastructure you already operate. Full control, no vendor lock-in.

1

Unzip & install

Unpack the Starter Kit, pip install -r requirements.txt.

2

Point it at Elasticsearch

Set ES_CLOUD_ID/ES_API_KEY (or ES_URL) in .env — your own cluster, self-hosted or Elastic Cloud.

3

Run it

flask run — the index builds itself on first start.

Get the Starter Kit →