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