A good search is like a stage for large content platforms, where exactly what the user wants to see is always played. Without Meilisearch, our platform would be just one of many - with mediocre search results and without the clear added value that we want to offer our customers. As we offer a subscription model for our content, it is essential that users find what they are looking for quickly and effectively. Meilisearch makes this possible with its technology.
Companies with large content platforms face enormous challenges when it comes to implementing a powerful search solution. Especially for projects such as TutKit.com, a comprehensive learning and content platform that provides content in multiple languages, search becomes a central element. Expectations are high: a fast, efficient and multilingual search solution is crucial in order to offer users an optimal experience.
Our platform, TutKit.com, offers tens of thousands of pieces of content available in dozens of languages . This variety and volume of content places great demands on the search function, coupled with further challenges in terms of performance, database load and database security. The search must not only be fast and precise, but also effectively support multilingualism. Here is a case study of how we found the perfect search engine for us with Meilisearch.
The perfect search engine for content platforms: Challenge and expectations
Initially, we had a search solution that was implemented by an external agency. The implemented search was based on MySQL and was inadequate, to say the least. Loading times for search results were up to 10 seconds, which was frustrating for our users and severely impacted the user experience. In addition, this solution could not provide good multilingual support. This external agency - although specialized in Laravel - was simply overwhelmed with a project like TutKit.com. It was clear: a drastic improvement was needed. And we were going to do it ourselves.
The decision for Meilisearch
In our search for a better solution, we came across Meilisearch. What particularly impressed us about Meilisearch was its speed and modern user experience. Meilisearch's web presence and convincing UX were an initial confirmation that the company is modern and agile. The real excitement came when we tested the speed of the search results. It was like night and day compared to our previous solution. Meilisearch also offered excellent multilingual support, which was crucial for us.
1000 results in 2 ms ... that's quite something:
We finally opted for the open source version of Meilisearch. We chose this version because it gave us complete control over the search results, without additional costs for license fees or external developers, where it is not even certain whether they will be able to manage the project, as we ourselves have had to experience in the past.
The implementation of Meilisearch
Integrating Meilisearch into our TutKit.com platform was the first step in improving the search functionality. Here are the details of how we implemented Meilisearch and how it is currently managed in our organization.
Setup and configuration
We decided to use Meilisearch as an open source version to maintain complete control over our search solutions. The installation started with downloading the Meilisearch server from the official website. To ensure stable and reliable operation, we set up a systemd service. This service was configured to start Meilisearch automatically as soon as the server starts up and to restart the service automatically in the event of a failure.
# Example of a systemd service file for Meilisearch
[Unit]
Description=MeiliSearch
After=systemd-user-sessions.service
[Service]
Type=simple
ExecStart=/usr/bin/meilisearch --http-addr 127.0.0.1:7700 --env production --master-key *****
Restart=on-failure
RestartSec=5s
[Install] WantedBy=multi-user.target
Security configuration
Security is an important aspect when configuring Meilisearch. We have created two keys to fulfill the security requirements. The master key, which allows full access to the Meilisearch instance, is used exclusively in the backend. The API key, on the other hand, which has more restricted permissions, is used for searches and other user tasks. This separation ensures that critical backend operations are securely protected while frontend interactions remain efficient and secure.
Integration with Laravel
Our TutKit.com platform is built on the Laravel PHP framework, and we used the MeiliSearch PHP library as the basis for the integration. The API key is used in our Laravel application to connect to Meilisearch. This significantly increases security as only the functions allowed by the API key are accessible, which minimizes the risk of unauthorized actions.
// Example for the configuration of Meilisearch in Laravel
'connections' => [
'meilisearch' => [
'host' => env('MEILISEARCH_HOST', 'http://localhost:7700'),
'key' => env('MEILISEARCH_KEY', null),
],
],
Indexing and data management
A central aspect of our implementation was the efficient management and indexing of data. We developed a custom console command in Laravel specifically designed for large updates or for starting the indexing process. This command specifically targets only the relevant records that need to be indexed. This allows us to avoid unnecessary data processing and focus on the essential information.
// Example of a custom console command in Laravel
Artisan::command('index:content', function () {
// Code to index the relevant records
})->describe('Index all relevant content');
Automatic updating of indices in the search
A key benefit of our implementation is the ability to automatically detect and respond to changes to Laravel models. Whenever data is updated, added or deleted, the corresponding MeiliSearch index is promptly and efficiently updated to reflect only these changes. This targeted indexing approach avoids the need to fully reindex all data and ensures that our Meilisearch data is always up to date. Our example code if blog post was updated:
if($this->status == 'PUBLIC') {
$post_filtered = $this->prepareSearchField();
$searchClient->index('suggestions')->updateDocuments([
[
'id' => 'blog_post_lang_'.$this->id,
'language' => $this->language->code,
'suggestion' => SearchHelper::prepareSearchSuggestion($this->title),
'indexation_type' => 'suggestion',
'type' => 'blog_post',
]
]);
$searchClient->index('blog_posts')->updateDocuments([$post_filtered]);
} else {
$searchClient->index('blog_posts')->deleteDocument($this->id);
$searchClient->index('suggestions')->deleteDocument('blog_post_lang_'.$this->id);
}
Optimization and maintenance
Regular maintenance and optimization of the Meilisearch integration is crucial for long-term performance. By taking advantage of Meilisearch's regular updates, we benefit from continuous improvements and new features. This ensures that our search solution is always up to date and can keep up with the growing demands of our platform.
If you would like to test Meilisearch for your project, your developers can find documentation on Meilisearch implementation here.

Here in the small animation it becomes clear:
- the search is ultra fast
- the search knows how to deal with typos and still shows the correct results
- the instant search results appear after a few letters
- the search filters allow the search results to be narrowed down quickly
The effects of Meiliseach at TutKit.com
The integration of Meilisearch into TutKit.com by our own development team has proven to be a great success. With a fast and effective search solution that takes into account multilingualism and large amounts of data, we have significantly improved the user experience. Our in-house developed implementation allows us to customize the search function to our exact needs while maintaining the control and security necessary for a powerful content platform.
With Meilisearch, we have achieved a significant improvement in the speed and efficiency of our search function. The indexing of new data is now lightning fast and the server load has been significantly reduced. Our users benefit from fast and relevant search results, which significantly improves the user experience and reduces the frustration caused by long loading times.
Financially, we have saved significant costs by using the open source version of Meilisearch. In addition, the high performance of Meilisearch allows us to operate without external support, which further reduces our costs.
We are excited to see how Meilisearch will continue to develop. We hope that future versions will integrate even more AI features that better capture users' search intent and reduce the need for filters and categorization options. Meilisearch has proven to be the right choice for us.
In conclusion, with Meilisearch we now have the perfect search engine to help us deliver a fast, multilingual and user-friendly search solution to our website users... it is currently the optimal search technology for enterprise challenges with hundreds of thousands or millions of pieces of content.