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.
Lexical match
BM25 finds documents that share your query's actual words.
Semantic match
Elasticsearch's built-in inference finds documents that share the meaning.
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.
Unzip & install
Unpack the Starter Kit, pip install -r requirements.txt.
Point it at Elasticsearch
Set ES_CLOUD_ID/ES_API_KEY (or ES_URL) in .env — your own cluster, self-hosted or Elastic Cloud.
Run it
flask run — the index builds itself on first start.