typesense /typesense

Open Source alternative to Algolia + Pinecone and an Easier-to-Use alternative to ElasticSearch ⚡ 🔍 ✨ Fast, typo tolerant, in-memory fuzzy Search Engine for building delightful search experiences

★ 27,109⑂ 1,030
C++Created 2017-01-18typesense.org
27,109
stars
+33+33+262
1,030
forks
–
watchers
–
prs
–
issues
–
releases
–
discussions

README

Typesense is a fast, typo-tolerant search engine for building delightful search experiences.



  An Open Source Algolia Alternative & 
  An Easier-to-Use ElasticSearch Alternative



  --
 
  
  


  Website | 
  Documentation | 
  Roadmap | 
  Slack Community | 
  Community Threads | 
  Twitter



  


✨ Here are a couple of live demos that show Typesense in action on large datasets:

- Search a 32M songs dataset from MusicBrainz: songs-search.typesense.org
- Search a 28M books dataset from OpenLibrary: books-search.typesense.org
- Search a 2M recipe dataset from RecipeNLG: recipe-search.typesense.org
- Search 1M Git commit messages from the Linux Kernel: linux-commits-search.typesense.org
- Spellchecker with type-ahead, with 333K English words: spellcheck.typesense.org
- An E-Commerce Store Browsing experience: ecommerce-store.typesense.org
- GeoSearch / Browsing experience: airbnb-geosearch.typesense.org
- Search / Browse xkcd comics by topic: xkcd-search.typesense.org
- Semantic / Hybrid search on 300K HN comments: hn-comments-search.typesense.org

🗣️ 🎥 If you prefer watching videos:

- Here's one where we introduce Typesense and show a walk-through: https://youtu.be/F4mB0x_B1AE?t=144
- Check out Typesense's recent mention during Google I/O Developer Keynote: https://youtu.be/qBkyU1TJKDg?t=2399
- Here's one where one of our community members gives an overview of Typesense and shows you an end-to-end demo: https://www.youtube.com/watch?v=kwtHOkf7Jdg

 Quick Links

- Features
- Benchmarks
- Roadmap
- Who's using this
- Install
- Quick Start
- Step-by-step Walk-through
- API Documentation
- API Clients
- Search UI Components
- FAQ
- Support
- Contributing
- Getting Latest Updates
- Build from Source

 Features

- Typo Tolerance: Handles typographical errors elegantly, out-of-the-box.
- Simple and Delightful: Simple to set-up, integrate with, operate and scale.
- ⚡ Blazing Fast: Built in C++. Meticulously architected from the ground-up for low-latency ( 

 Quick Start

Here's a quick example showcasing how you can create a collection, index a document and search it on Typesense.
 
Let's begin by starting the Typesense server via Docker:


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


We have API Clients in a couple of languages, but let's use the Python client for this example.

Install the Python client for Typesense:
 

pip install typesense


We can now initialize the client and create a companies collection:

python
import typesense

client = typesense.Client({
  'api_key': 'Hu52dwsas2AdxdE',
  'nodes': [{
    'host': 'localhost',
    'port': '8108',
    'protocol': 'http'
  }],
  'connection_timeout_seconds': 2
})

create_response = client.collections.create({
  "name": "companies",
  "fields": [
    {"name": "company_name", "type": "string" },
    {"name": "num_employees", "type": "int32" },
    {"name": "country", "type": "string", "facet": True }
  ],
  "default_sorting_fi

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON