OpenSource-Hub
T

typesense

25.8k stars·Developer Tools·SHA-256 checksum verified

Typesense is a blazing-fast, in-memory fuzzy search engine built in C++. It provides typo tolerance, faceted filtering, geosearch, vector search, and semantic/hybrid search out of the box. Easy to set up, operate, and scale, with no runtime dependencies.

Smart Download

Visit Project Homepage

No installer available yet — head to the source repository

A fast, typo-tolerant open-source search engine - a simpler alternative to Algolia and ElasticSearch.

Core Features

  • Typo tolerance: automatically handles misspellings without configuration
  • Blazing fast: <50ms search latency due to C++ and memory-first architecture
  • Tunable ranking: customize search result ordering
  • Faceting & filtering: drill down and refine results dynamically
  • Federated search: query multiple collections in one request

What It Can't Do

  • Typesense stores indexes in RAM, so large datasets (e.g., 28M books) require significant memory (~14GB). Not suitable for low-memory environments. The open-source version is GPL-3.0 licensed; commercial use may require a different license.

Use Cases

  • E-commerce: product search with filtering, sorting, and recommendations
  • Documentation sites: full-text search with instant suggestions
  • Location-based apps: search restaurants, listings by proximity

Detailed Introduction

Typesense是一个用C++构建的内存模糊搜索引擎,以极低延迟(<50ms)处理搜索请求。它提供拼写容错、排序、筛选、地理搜索、向量搜索和语义搜索等功能,可轻松替代Algolia或ElasticSearch。支持分布式集群、无运行时依赖,易于部署和扩展。

Troubleshooting & FAQ (1)

Troubleshooting
How to fix 'type must be string, but is null' error in Typesense with Cloudflare Workers AI streaming?

This error occurs in Typesense v30.1 when using Cloudflare Workers AI for conversational search. Cloudflare's final SSE chunk contains "response": null, causing a JSON type error. Upgrade to a Typesense version where this is fixed (v30.2+ possibly). As a workaround, in conversation_model.cpp line 978, add a null check before accessing the response field: if (chunk["response"].is_null()) continue;. This skips the usage-only chunk and allows the streaming response to be processed correctly.

GitHub Issue #2858

Tags

search-enginetypo-tolerantfuzzy-searchalgolia-alternativeelasticsearch-alternative

Getting Started

1

Download installer

Click the button above to download the installer for your system

2

Install the software

Double-click the downloaded installer and follow the prompts

3

Run with Docker: docker run -p 8108:8108 -v/tmp/data:/data typesense/typesense:29.0 --data-dir /data --api-key=Hu52dwsas2AdxdE

4

Install Python client: pip install typesense

5

Write a script to create collection, index documents, and perform search (see official docs)

Install Guide
  1. Run with Docker: docker run -p 8108:8108 -v/tmp/data:/data typesense/typesense:29.0 --data-dir /data --api-key=Hu52dwsas2AdxdE
  2. Install Python client: pip install typesense
  3. Write a script to create collection, index documents, and perform search (see official docs)
File Integrity

Checksum not available

This project has not published a SHA-256 checksum on its GitHub Release page

SHA256 Checksum

No checksum available

Download directly from GitHub Releases and verify file integrity yourself

All SHA-256 checksums on this platform are extracted from the project's official GitHub Release page, without any modification. You can independently verify them on the GitHub Releases page.

Open Source Transparency

View GitHub Source
Environment Guide

Uninstall Info

If using Docker, run docker stop and docker rm to remove the container, then delete the local data directory. If installed via binary, simply delete the typesense executable and configuration files.

No Extra Dependencies

Ready to use after download. No additional runtime required.

Project Info
LicenseGPL-3.0
Last Updated2026-06-26 02:15:15
GitHub RepositoryOfficial Website

Having issues? Check the FAQ below

1 FAQ

Similar Projects