Meilisearch is a free, open-source search engine that provides instant, typo-tolerant search out of the box. It's designed to be a drop-in replacement for Algolia — without the price tag.
What Is Meilisearch?
Meilisearch is a lightning-fast search engine built in Rust. It returns results in under 50ms, handles typos automatically, and requires zero configuration to get started.
Why developers choose it:
- Search results in <50ms
- Typo tolerance (built-in)
- Faceted search and filters
- Multi-language support
- RESTful API
- SDKs for every major language
- Self-hostable (single binary)
- Beautiful instant search UI components
Quick Start
Install
# Using curl
curl -L https://install.meilisearch.com | sh
# Docker
docker run -p 7700:7700 getmeili/meilisearch
# macOS
brew install meilisearch
Start the Server
./meilisearch --master-key="your-secret-key"
Add Documents
curl -X POST http://localhost:7700/indexes/products/documents \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-secret-key" \
--data-binary @products.json
Search
curl "http://localhost:7700/indexes/products/search?q=laptop" \
-H "Authorization: Bearer your-secret-key"
Results in <50ms. With typo tolerance. Zero configuration.
SDK Examples
JavaScript
import { MeiliSearch } from "meilisearch";
const client = new MeiliSearch({
host: "http://localhost:7700",
apiKey: "your-secret-key"
});
// Add documents
await client.index("products").addDocuments([
{ id: 1, name: "Wireless Keyboard", price: 49.99, category: "Electronics" },
{ id: 2, name: "Mechanical Keyboard", price: 129.99, category: "Electronics" }
]);
// Search
const results = await client.index("products").search("keybord"); // typo handled!
console.log(results.hits); // Returns both keyboards
Python
import meilisearch
client = meilisearch.Client("http://localhost:7700", "your-secret-key")
# Search with filters
results = client.index("products").search("keyboard", {
"filter": "price < 100",
"sort": ["price:asc"]
})
Features That Replace Algolia
| Feature | Algolia Free | Meilisearch |
|---|---|---|
| Search requests | 10K/month | Unlimited |
| Records | 10K | Unlimited |
| Typo tolerance | Yes | Yes |
| Faceted search | Yes | Yes |
| Geo search | Paid | Free |
| Multi-tenancy | Paid | Free |
| Self-host | No | Yes |
| Cost | $0-$110+/mo | $0 forever |
Instant Search UI
Meilisearch provides ready-to-use UI components:
<script src="https://cdn.jsdelivr.net/npm/meilisearch/dist/bundles/meilisearch.umd.js"></script>
<script>
const search = new MeiliSearch({ host: "http://localhost:7700" });
// Instant search as you type
</script>
Also integrates with:
- React InstantSearch
- Vue InstantSearch
- Angular InstantSearch
- Docsearch (documentation sites)
Advanced Features
Faceted Search
const results = await index.search("laptop", {
facets: ["brand", "price_range", "ram"]
});
// Returns results + facet distribution
Geo Search
const results = await index.search("", {
filter: "_geoRadius(48.8566, 2.3522, 5000)" // 5km from Paris center
});
Multi-Index Search
const results = await client.multiSearch({
queries: [
{ indexUid: "products", q: "keyboard" },
{ indexUid: "blog_posts", q: "keyboard" }
]
});
Performance
- 50ms average search latency
- Handles millions of documents
- Index 100K documents in seconds
- Low memory footprint
- Written in Rust for maximum performance
Who Uses Meilisearch?
With 48K+ GitHub stars:
- E-commerce sites replacing Algolia
- Documentation sites (Docsearch alternative)
- SaaS products with search features
- Content platforms and blogs
Get Started
- Download single binary or use Docker
- Add your documents via API
- Search instantly with typo tolerance
- Add UI components to your frontend
Full-text search in under 5 minutes. No Algolia bills.
Need data to power your search engine? Check out my web scraping tools on Apify — extract product data, reviews, and content from any website. Custom scrapers: spinov001@gmail.com
Top comments (0)