Find anything, instantly.

Lightning-fast full-text search engine with typo tolerance, faceted search, vector similarity, and geo queries. Self-hosted, open source.

Features

Everything you need for blazing-fast search, out of the box.

Full-Text Search

Inverted index with BM25 ranking, phrase search, prefix matching, and proximity scoring.

Typo Tolerance

Levenshtein automaton finds matches even with spelling mistakes. Configurable distance per word length.

Faceted Search

Filter by numeric ranges, strings, booleans, dates. Compute facet distributions and stats in real time.

Vector Search

HNSW index for semantic similarity. Cosine, Euclidean, dot product metrics. Up to 4096 dimensions.

Hybrid Search

Combine keyword and vector results with Reciprocal Rank Fusion for the best of both worlds.

Geo Search

Radius queries, bounding box, k-nearest neighbors. Distance-based sorting. Global coverage.

Multi-Language

Stemming and tokenization for 30+ languages including CJK. Language-specific stop words.

Real-Time

Documents searchable immediately after indexing. No batch delays. Sub-millisecond updates.

REST API

Full CRUD on indexes, documents, settings, keys. Multi-search. Prometheus metrics. Dashboard.

Quick Start

Up and running in seconds.

# Start the server ksearch serve --port 9298 # Create an index curl -X POST http://localhost:9298/api/v1/indexes \ -H "Content-Type: application/json" \ -d '{"uid": "movies", "primaryKey": "id"}' # Add documents curl -X POST http://localhost:9298/api/v1/indexes/movies/documents \ -H "Content-Type: application/json" \ -d '[ {"id": 1, "title": "Star Wars", "genre": "sci-fi", "year": 1977}, {"id": 2, "title": "The Matrix", "genre": "sci-fi", "year": 1999}, {"id": 3, "title": "Inception", "genre": "sci-fi", "year": 2010} ]' # Search! curl "http://localhost:9298/api/v1/indexes/movies/search?q=star"