typesense  by typesense

Open source search engine alternative

created 8 years ago
24,022 stars

Top 1.7% on sourcepulse

GitHubView on GitHub
Project Summary

Typesense is an open-source, fast, typo-tolerant search engine designed for building user-friendly search experiences. It aims to be a simpler alternative to Elasticsearch and a self-hosted option to Algolia, targeting developers who need to integrate powerful search capabilities into their applications.

How It Works

Typesense is built in C++ for performance and operates as a single, self-contained native binary with no runtime dependencies. It employs an in-memory indexing approach for low-latency searches. Key features include typo tolerance, tunable ranking, faceting, filtering, geo-search, and advanced capabilities like vector search, semantic/hybrid search, conversational search (RAG), image search, and voice search, all accessible via a clean API.

Quick Start & Requirements

  • Install: Run via Docker: docker run -p 8108:8108 -v/tmp/data:/data typesense/typesense:28.0 --data-dir /data --api-key=Hu52dwsas2AdxdE
  • Dependencies: Python client requires pip install typesense. Building from source requires a C++11 compatible compiler, Snappy, zlib, OpenSSL (>=1.0.2), curl, and ICU.
  • Resources: A fresh server consumes ~30MB RAM; memory usage scales with indexed data.
  • Links: Documentation, Roadmap, Slack Community, Live Demos.

Highlighted Details

  • Performance: Benchmarked at 11ms average search processing time with 104 concurrent queries/sec on a 4vCPU server for 2.2M recipes.
  • Advanced Features: Supports vector search, semantic/hybrid search with built-in or external embeddings, RAG, image search (CLIP), and voice search (Whisper).
  • Data Modeling: Offers JOINs for relational data and tunable ranking/faceting at query time.
  • Scalability: Supports Raft-based clustering for high availability.

Maintenance & Community

Typesense is actively developed by Typesense Inc. with a public roadmap and a strong community presence via Slack. Docker images have over 12M downloads, and Typesense Cloud serves over 10 billion searches monthly.

Licensing & Compatibility

Typesense Server is licensed under GPLv3, intended for server-side deployment. Client libraries are Apache licensed. The GPLv3 license for the server is chosen to encourage community contributions of modifications, while allowing internal use without open-sourcing internal modifications.

Limitations & Caveats

The GPLv3 license for the server component may be a concern for some integration scenarios. Typesense currently lacks personalization and server-based search analytics, though client-side instrumentation is possible.

Health Check
Last commit

4 days ago

Responsiveness

Inactive

Pull Requests (30d)
18
Issues (30d)
19
Star History
1,179 stars in the last 90 days

Explore Similar Projects

Starred by Andrej Karpathy Andrej Karpathy(Founder of Eureka Labs; Formerly at Tesla, OpenAI; Author of CS 231n), Alex Cheema Alex Cheema(Cofounder of EXO Labs), and
3 more.

Perplexica by ItzCrazyKns

0.3%
23k
AI-powered search engine alternative
created 1 year ago
updated 1 day ago
Feedback? Help us improve.