Overview
Meilisearch is an open-source, flexible, and typo-tolerant search engine designed to integrate search functionalities into web, mobile, and desktop applications. Developed with a focus on ease of use and performance, Meilisearch provides a RESTful API for developers to add search capabilities without extensive configuration. Its core design prioritizes speed, delivering search results in milliseconds, even for large datasets Meilisearch overview.
The engine automatically handles common search challenges such as typos, stemming, and ranking through its default configuration. Relevancy is determined by an algorithm that considers factors like word proximity, word order, and attribute ranking, which can be customized to fit specific application needs Meilisearch relevancy guide. This makes Meilisearch suitable for a range of use cases, including powering product search in e-commerce platforms, enabling efficient navigation within documentation sites, or enhancing content discovery in various applications.
Meilisearch is offered in two primary deployment models: Meilisearch Cloud and Meilisearch Self-Hosted Meilisearch homepage. The cloud offering provides a managed service, abstracting infrastructure concerns and offering scalability out-of-the-box. The self-hosted option allows organizations to deploy and manage Meilisearch on their own infrastructure, providing full control over data and environment. The API design is intended to be straightforward, supporting common indexing operations (adding, updating, deleting documents) and search queries. It supports various data types and can process large volumes of data, making it adaptable for different scales of applications. For example, Meilisearch is designed to offer a similar developer experience to other search-as-a-service platforms, while also providing an open-source deployment option Typesense comparison.
Key features
- Typo Tolerance: Automatically corrects typos and misspellings in search queries, ensuring relevant results even with user input errors Meilisearch typo tolerance.
- Fast Search: Delivers sub-50ms search response times, optimizing the user experience for real-time applications Meilisearch performance metrics.
- Customizable Relevancy: Allows developers to define and adjust search result ranking rules based on specific application requirements, such as attribute priority or word proximity Meilisearch relevancy customization.
- Faceting and Filtering: Supports filtering results by attributes and generating faceted navigation, enabling users to refine searches efficiently Meilisearch faceted search.
- Language Support: Includes advanced language-specific features like CJK (Chinese, Japanese, Korean) word segmentation and stop word management for various languages Meilisearch language features.
- Synonyms: Enables the definition of synonyms to broaden search results and improve recall for related terms Meilisearch synonyms.
- Tenant Tokens (Multi-tenancy): Provides a secure way to restrict data access for different users or tenants, ensuring data isolation in multi-tenant applications Meilisearch tenant tokens.
- SDKs and Integrations: Offers client libraries for popular programming languages, simplifying integration into diverse development stacks Meilisearch SDKs.
Pricing
Meilisearch offers a free tier and various paid plans for its cloud service, with custom options for self-hosted deployments and enterprise needs. Pricing is primarily based on document count and search requests.
| Plan | Documents | Search Requests/Month | Price/Month | Additional Features |
|---|---|---|---|---|
| Free | Up to 250,000 | Up to 100,000 | $0 | Basic support |
| Starter (Cloud) | Up to 500,000 | Up to 500,000 | $29 | Priority support, 1 project |
| Growth (Cloud) | Up to 1,500,000 | Up to 1,500,000 | $99 | Priority support, 3 projects, custom backups |
| Business (Cloud) | Up to 5,000,000 | Up to 5,000,000 | $249 | Dedicated infrastructure, advanced monitoring, 5 projects |
| Enterprise (Cloud/Self-Hosted) | Custom | Custom | Custom | Dedicated resources, SLA, specialized support, custom deployment |
Pricing data as of June 2026. For detailed and up-to-date pricing, refer to the official Meilisearch pricing page.
Common integrations
- JavaScript/TypeScript: Integrate into web applications using the official Meilisearch JavaScript SDK.
- Python: Use the Meilisearch Python SDK for backend services and data processing.
- PHP: Implement search in PHP applications and frameworks using the Meilisearch PHP SDK.
- Ruby: Integrate with Ruby on Rails and other Ruby applications via the Meilisearch Ruby SDK.
- Go: Develop high-performance services with the Meilisearch Go SDK.
- Java: Integrate into Java-based enterprise applications using the Meilisearch Java SDK.
- C#: Utilize the Meilisearch C# SDK for .NET applications.
- Rust: Build performant applications with the Meilisearch Rust SDK.
- Dart/Flutter: Integrate search into Flutter mobile and web apps using the Meilisearch Dart SDK.
- Swift: Develop iOS and macOS applications with search functionality using the Meilisearch Swift SDK.
Alternatives
- Algolia: A proprietary search-as-a-service platform known for its speed, comprehensive feature set, and extensive front-end libraries.
- Elasticsearch: A distributed, RESTful search and analytics engine built on Apache Lucene, often used for log analytics, full-text search, and operational intelligence.
- Typesense: An open-source, typo-tolerant search engine optimized for speed and developer-friendliness, often considered a lightweight alternative to Elasticsearch.
- Apache Solr: An open-source enterprise search platform, also built on Lucene, offering powerful full-text search, hit highlighting, faceted search, and rich document handling.
- Azure Cognitive Search: A cloud search service from Microsoft Azure that offers AI-powered search capabilities, including semantic search, natural language processing, and image processing.
Getting started
To get started with Meilisearch, you typically set up a Meilisearch instance (cloud or self-hosted), create an index, add documents, and then query that index. Here's a basic example using the JavaScript SDK to connect to a Meilisearch instance, add documents, and perform a search.
const { Meilisearch } = require('meilisearch')
const client = new Meilisearch({
host: 'YOUR_MEILISEARCH_HOST',
apiKey: 'YOUR_MASTER_KEY', // Or a public search key for client-side search
})
const index = client.index('movies')
// 1. Add documents to the index
async function addDocuments() {
const documents = [
{ id: 1, title: 'Iron Man', genres: ['Action', 'Sci-Fi'] },
{ id: 2, title: 'Captain America: The First Avenger', genres: ['Action', 'Adventure'] },
{ id: 3, title: 'Thor', genres: ['Fantasy', 'Action'] }
]
try {
const response = await index.addDocuments(documents)
console.log('Documents added successfully:', response)
} catch (error) {
console.error('Error adding documents:', error)
}
}
// 2. Perform a search
async function searchDocuments() {
try {
const searchResults = await index.search('man', {
limit: 5 // Limit the number of results
})
console.log('Search results for "man":', searchResults.hits)
const filteredResults = await index.search('captain', {
filter: ['genres = "Adventure"']
})
console.log('Search results for "captain" in Adventure:', filteredResults.hits)
} catch (error) {
console.error('Error during search:', error)
}
}
// Run the operations
addDocuments().then(() => searchDocuments())
This JavaScript code snippet demonstrates how to initialize the Meilisearch client, add a collection of movie documents to an index named 'movies', and then execute two search queries: one broad search for "man" and another filtered search for "captain" specifically within the "Adventure" genre. Replace 'YOUR_MEILISEARCH_HOST' and 'YOUR_MASTER_KEY' with your actual Meilisearch instance details Meilisearch quick start guide. For more advanced features and deployment options, refer to the official Meilisearch documentation.