Deciding between Meilisearch and Typesense for your search engine project? Look no further! In this article, we take a deep dive into the capabilities, features, and characteristics that distinguish Meilisearch and Typesense. We’ll explore the areas in which each outperforms the other as well as their relative strengths and weaknesses.
What is Typesense?
Typesense is an open-source search engine prioritizing ease of use and rapid deployment. Built on C++, its first commit was released in 2015, and its source code is available under the GNU General Public License (v.3.0). Starting out as a self-hosted open-source search engine, it now also offers a paid managed cloud solution.
Known for its lightning-fast, typo-tolerant search capabilities, Typesense ensures an efficient user experience. Its features include instant search results, auto-suggestions, typo tolerance, relevancy, and a simple configuration process. This makes it an accessible option for small to medium-sized businesses.
It also covers a handful of unique use cases, such as advanced configurations for geospatial and faceted search.
What is Meilisearch?
Launched in 2018, Meilisearch is an open-source (MIT license) search engine. Meilisearch’s main value lies in providing a developer-friendly, plug-and-play search solution that takes care of 90% of use cases out of the box.
Meilisearch is built on Rust, which enables building performant, scalable, and secure applications. Meilisearch caters to a wide user base, with a focus on the needs of small-to-medium businesses. Its standout features include blazing-fast search speeds and a modern developer environment.
Like Typesense, it’s available as both an open-source, self-hosted binary and a managed cloud solution. While the two share many other similarities — both in terms of philosophy and capabilities — there are some important nuances that set them apart.
Not only does Meilisearch offer unparalleled indexing speed and robust multi-language support, but its huge community is actively involved in its rapid development.
Typesense vs Meilisearch - Key features compared
Providing a seamless and hassle-free developer experience lies at the core of both these search tools. Both offer an easy setup process, comprehensive documentation, and Docker support for simple deployment.
Both also feature RESTful APIs for seamless integration with a wide variety of programming languages and frameworks. Their APIs are also pretty intuitive and self-explanatory, allowing you to just “pick up and go” with a minimal learning curve.
The difference between these two lies in the details. Meilisearch has the edge with its modern developer dashboard UI, while Typesense has a more legacy feel.
However, enabling and configuring different features (like analytics or semantic search) is effortless with either option. Typically, cloud users can do it with just a couple of clicks, while self-hosted solutions only require a single command. For the most part, either option offers a “set it and forget it approach,” with most search functionalities like typo tolerance working out of the box.
A Typesense feature that may save you extra development time is automatically generated record IDs and built-in query suggestions. However, automatic document ID generation is already under development at Meilisearch.
SDKs and integrations
Meilisearch’s reach is slightly broader in terms of its support for other languages and frameworks, with official SDKs or support for Laravel, Strapi, and Rust. Meilisearch provides plugins for a variety of JAMstack ecosystem solutions like VuePress, Strapi, Gatsby, and Firebase.
Additionally, Meilisearch also provides 1-click deployments for popular hosting services, like AWS, GCP, and DigitalOcean, to streamline deployment in your DevOps. Not to mention official 1-click deployments for Platform.sh, Azure, Railway, Koyeb. This proves one of Meilisearch’s primary commitments: to provide easy ways to integrate Meilisearch into any project.
Both solutions have developed integrations for the open-source Instantsearch.js, making it easy to send analytics data to platforms. With either solution, you have the option to implement client-side analytics via instantsearch.js and integrate with third-party analytics services.
Relevance and typo tolerance
Typo tolerance and relevance-boosting features are vital to improving the user experience and overall search performance. With both Meilisearch and Typesense, typo tolerance and relevance are built-in and ready to go.
Typesense allows weighting or boosting fields for increased relevancy. This way, you can easily ensure that matches in certain fields have a higher impact on search result ranking based on your application. For example, in an e-commerce product catalog, a developer can assign a higher weight to the product title field than to the description field.
Meilisearch, while offering strong typo tolerance and relevance tuning, doesn’t currently provide field weighting. Instead, it focuses on overall context and the use of custom ranking rules to refine search results. This approach offers flexibility but might require more fine-tuning when specific field relevance is a priority.
However, field boosting is still in the works at Meilisearch. This feature will allow devs to boost or “bury” (i.e. downrank) documents matching certain criteria in search results.
Both products offer semantic search capabilities. However, Meilisearch can handle the generation of vector embeddings for you, freeing you from setting up additional infrastructure to benefit from AI. These are powered by AI and large language learning models via third-party tools, including OpenAI.
Other than that, the two differ in a few other niche capabilities. Meilisearch features built-in support for stop words, while you’ll need to implement this manually client-side if you’re using Typesense. On the other hand, Typesense provides the ability to group search results by a specified field. This feature is currently under consideration for Meilisearch.
In short, Typesense’s field weighting feature gives it an edge in scenarios where the importance of different fields needs to be clearly defined and prioritized. Meilisearch offers a broader but less field-specific approach to managing search relevance. However, Meilisearch comes ahead with its growing AI search capabilities including hybrid search.
Indexing and performance
A major differentiator for both Typesense and Meilisearch is fast indexing performance with instant search-as-you-type capabilities.
Using RAM for its index storage, Typesense's performance is optimized for speed, so even large datasets are searchable in near real-time. This is particularly beneficial in scenarios like live product catalogs or streaming content platforms, where rapid updates and quick access to data are crucial.
Meilisearch follows a slightly different approach. It uses disk space as its primary indexing location, with a memory-mapped database that allows the OS to load only the relevant parts of the database in RAM. On top of speed, Meilisearch also stresses the flexibility and scalability of its indexing process. Asynchronous indexing allows for handling large datasets without a significant impact on the search performance.
This makes Meilisearch well-suited for applications where the dataset is large or growing and where the balance between indexing speed and search relevance is important. For example, e-commerce platforms, CMSs, digital libraries, social media, and streaming services.
Handling foreign languages
Between the two, Meilisearch offers much wider language support, and has been actively working at improving this aspect of its engine. Typesense is especially limited when it comes to languages requiring complex tokenization, like Chinese, Japanese, and Arabic.
Improving multi-language support through its tokenization library Charabia is a key goal for Meilisearch which has effectively leveraged its large and active community of contributors to improve its models. The team actively encourages using a variety of channels to contribute to the continued development of its language tokenization.
Meilisearch currently offers optimized support for Latin, Chinese, Arabic, Japanese, Thai, Korean, and more.
On the other hand, Typesense currently uses a Unicode-based tokenization library. While, in theory, Typesense offers support for all languages, the reality falls a bit short. The Unicode system is not particularly good at handling languages that don’t use the Latin alphabet or Western writing practices. For example, it struggles with morphologically rich languages (like Russian and Turkish) as well as ones without conventional word spacing (Chinese and Japanese).
Another significant advantage Meilisearch has over Typesense is automatic language detection to kick off the appropriate tokenization pipeline. This greatly streamlines search integration as you don’t need to manually specify the language or implement language detection on the client side.
Currently, it’s not as clear what steps Typesense is taking to continue developing and expanding its language support as there don’t seem to be multi-language or localization-related items in its current roadmap or under active issues.
Analytics & data visualization
Meilisearch provides search analytics via its cloud offering. It tracks search queries and conversions, which can be useful for understanding user behavior.
Meilisearch Cloud users have access to advanced search analytics, with data visualization right in the account dashboard. It tracks various metrics, from most searched queries to daily searches to searches without results. This allows for simple, fast access to actionable insights into search performance and user behavior.
Self-hosted users may also get some value out of Meilisearch’s mini-dashboard. This should give a good idea of how your searches perform in practice.
Typesense offers native search analytics for both self-hosted and cloud users. For now, it only tracks the popularity of search terms and ranks them appropriately.
Community and support
Both Typesense and Meilisearch are open-source projects built on strong community pillars. With a 4-year headstart, it’s no surprise that Typesense has a much larger public Discord/Slack community of 1,000 vs 400 for Meilisearch.
However, Meilisearch seems to do a better job of harnessing its community for progress, with 138 main project contributors vs Typesense’s 37. This is reflected in the number of PRs. Meilisearch has well over 1,700 PRs, with 29 that are still open. Typesense seems to be less actively worked on, with only 250 total PRs (5 open).
Other health metrics are also in Meilisearch’s favor. It has a healthy ratio of only 129 open issues compared to 1,536 that have been closed. In contrast, Typesense has 425 open issues, with only 713 closed.
Meilisearch also clearly has the lead with 40.7k Github stars, while Typesense has just 16.1k.
However, both seem to have plenty of ambitions for the future, with a healthy number of planned features and improvements on their respective roadmaps.
Regarding support, developers using either Meilisearch or Typesense for free can get community-based support as well as email or live chat. That being said, both have launched premium support with their cloud offerings. Typesense offers a multi-tiered support plan structure. While Meilisearch is planning a similar option for the future, you can currently discuss your needs with them to get a tailored support solution.
As we mentioned, one area where Typesense falls short compared to Meilisearch is its limited language support.
However, like other search engines, it also has some inherent shortcomings due to its chosen development path. For one, storing its entire index in memory means that the size of your dataset is limited by your available resources. So, while it’s simple and fast, you might face some challenges in scaling.
Typesense’s development is nowhere near static, but its community is smaller, and its pace of development is slower than Meilisearch. While it has had a headstart in certain regards (like vector search), the gap is getting smaller. And it has been leapfrogged by Meilisearch in other areas, like language support and analytics.
In its pursuit of developing a fast, efficient, and developer-friendly search engine, Meilisearch has also made some intentional design trade-offs.
For one, Meilisearch only takes a maximum of 10 words per search term into account. While it does somewhat limit the complexity of search terms, it helps keep response times low.
Similarly, it imposes constraints on the maximum number of words per attribute, attributes per document, and document per index (~4.3 billion), amongst others. Again, these limits are there to reduce the possible impact on performance while catering to the requirements of the vast majority of use cases.
Self-hosted Meilisearch also doesn’t support distributed architectures, although it offers high-availablity for Meilisearch Cloud users.
Finally, Meilisearch lags behind somewhat regarding fine-tuning search results based on field weighting and grouping.
Pricing and commercial offerings
Both offer a free and open-source search solution for self-hosted projects that should remain that way for the foreseeable future. It’s their cloud offerings where the real point of differentiation lies.
Typesense follows a pay-as-you-use model. You get a dedicated cluster and are charged an hourly rate based on the size of your required RAM. You also need to factor in the cost of outgoing bandwidth, which includes API responses and replicating indexing or configuration changes between clusters.
The monthly cost starts at around $21.60 for the most affordable setup. However, it can quickly balloon to thousands (or tens of thousands) of dollars/month for higher RAM and processing requirements.
In contrast, Meilisearch offers a tier-based pricing structure with overage rates if you go beyond your plan’s limits. Pricing starts at $30/month (only slightly higher than Typesense’s most basic config) and includes 100,000 searches and 1 million documents (indexed data entries).
While both offer a degree of unpredictability in their pricing, Meilisearch is arguably the more stable of the two. If you know your average monthly searches and how many data entries you need, you should have no problem calculating your costs.
In theory, Typesense could save you a few dollars a month. However, its outgoing bandwidth rates mean that, in reality, it will most likely end up costing nearly the same (or more), depending on your usage and configuration.
When should you consider Typesense over Meilisearch?
Typesense’s advanced configurations for geospatial and faceted search make it ideal for applications requiring complex query capabilities, like location-based services or extensive product filtering.
This makes it a preferred choice for many e-commerce platforms with vast product catalogs where field weighting is an important conversion factor. Or streaming platforms, where results are often faceted by region and where semantic understanding of search queries is important for finding relevant results.
There might also be some use cases where Meilisearch’s known limitations, such as its 10-word query limit, might not be suitable. For example, if you mainly index complex data, such as academic, medical, or research databases.
When should you consider Meilisearch over Typesense?
Meilisearch performs well for scenarios that demand robust multi-language support and advanced indexing capabilities. It's particularly suited for platforms with a global audience, where support for various languages and alphabets is essential.
The developer-friendly environment of Meilisearch, with its plug-and-play setup, suits projects where development time and resources are limited. Its scalable architecture also makes it an ideal candidate for large, dynamic databases such as digital libraries or extensive content management systems.
Developers looking for a modern UI and extensive community support might find Meilisearch more to their liking. Long-term projects will continue to benefit from its rapid pace of development.
What you can expect with both Typesense and Meilisearch is a developer-friendly experience, lightning-fast performance, and instant search-as-you-type experiences.
Typesense is very much a pioneer in the space of providing fast, typo-tolerant search experience for websites and applications. Meilisearch follows in that tradition but has also introduced unique capabilities to distinguish it from Typesense.
Meilisearch prioritizes the developer experiences with intuitive dashboards, easy 1-click deployments, and a thriving community. Moreover, it saves a ton of time with built-in features like search analytics and improved multi-language support. The Typesense features that stand out are geospatial and faceted search.