# Wyszukiwarka dla setek tysięcy wielojęzycznych treści: Meilisearch

> URL: https://4eck-media.de/pl/blog/wyszukiwarka-dla-setek-tysiecy-wielojezycznych-tresci-meilisearch/  
> Language: pl  
> Description: Wiele treści w wielu językach: Meilisearch to idealna wyszukiwarka dla wyzwań klasy enterprise

---

Firmy prowadzące duże platformy contentowe muszą mierzyć się z ogromnymi wyzwaniami przy wdrażaniu wydajnego rozwiązania wyszukiwania. Szczególnie w projektach takich jak TutKit.com, rozbudowana platforma edukacyjna i contentowa udostępniająca treści w wielu językach, wyszukiwarka staje się elementem centralnym. Oczekiwania są wysokie: szybkie, wydajne i wielojęzyczne rozwiązanie wyszukiwania jest kluczowe, aby zapewnić użytkownikom optymalne doświadczenie.

Nasza platforma, TutKit.com, oferuje  **dziesiątki tysięcy treści, z których każda jest dostępna w kilkudziesięciu językach**. Ta różnorodność i ilość treści stawiają wysokie wymagania wobec funkcji wyszukiwania, do których dochodzą kolejne wyzwania związane z wydajnością, obciążeniem bazy danych i jej bezpieczeństwem. Wyszukiwarka musi być nie tylko szybka i precyzyjna, lecz także skutecznie wspierać wielojęzyczność. Oto nasze **case study** o tym, jak dzięki **Meilisearch**znaleźliśmy idealną dla nas wyszukiwarkę.

## Idealna wyszukiwarka dla platform contentowych: wyzwania i oczekiwania

Na początku mieliśmy rozwiązanie wyszukiwania wdrożone przez zewnętrzną agencję. Zrealizowana wyszukiwarka opierała się na MySQL i była, delikatnie mówiąc, niewystarczająca. Czas ładowania wyników wyszukiwania sięgał 10 sekund, co frustrowało naszych użytkowników i mocno pogarszało doświadczenie korzystania z serwisu. Ponadto rozwiązanie to nie zapewniało dobrej obsługi wielojęzyczności. Ta zewnętrzna agencja – choć wyspecjalizowana w Laravel – była po prostu przeciążona projektem takim jak TutKit.com. Było jasne: konieczna jest radykalna poprawa. I zrobimy to sami.

## Decyzja na rzecz Meilisearch

Szukając lepszego rozwiązania, natrafiliśmy na Meilisearch. Tym, co szczególnie nas zachwyciło w Meilisearch, była szybkość i nowoczesne doświadczenie użytkownika.   Strona internetowa Meilisearch i przekonujący UX były pierwszym potwierdzeniem, że firma jest nowoczesna i zwinna. Prawdziwy entuzjazm pojawił się, gdy przetestowaliśmy szybkość wyników wyszukiwania. W porównaniu z naszym dotychczasowym rozwiązaniem różnica była jak dzień i noc. Ponadto Meilisearch oferował znakomitą obsługę wielojęzyczności, która miała dla nas decydujące znaczenie.

1000 wyników w 2 ms… to dopiero deklaracja:

    
        
            
                
                    

![Meiliserach Startseite](https://4eck-media.de/wp-content/uploads/2025/11/meilisearch_mainpage_fbc63e3ac0-1920x1080.avif)
                
            
        
    

Ostatecznie zdecydowaliśmy się na wersję open source Meilisearch. Wybór padł na tę wersję, ponieważ dawała nam pełną kontrolę nad wynikami wyszukiwania, bez dodatkowych kosztów licencji czy zewnętrznych deweloperów, co do których nie ma nawet pewności, czy udźwigną projekt – czego sami boleśnie doświadczyliśmy w przeszłości.

## Wdrożenie Meilisearch

Integracja Meilisearch z naszą platformą TutKit.com była pierwszym krokiem do poprawy funkcjonalności wyszukiwania. Oto szczegóły, jak wdrożyliśmy Meilisearch i jak obecnie zarządzamy nim w naszej firmie.

### Instalacja i konfiguracja

Zdecydowaliśmy się używać Meilisearch w wersji open source, aby zachować pełną kontrolę nad naszymi rozwiązaniami wyszukiwania. Instalacja rozpoczęła się od pobrania serwera Meilisearch z oficjalnej strony. Aby zapewnić stabilne i niezawodne działanie, skonfigurowaliśmy usługę systemd. Usługa ta została ustawiona tak, aby Meilisearch uruchamiał się automatycznie wraz ze startem serwera, a w razie awarii był automatycznie restartowany.

```
# Beispiel für eine systemd-Dienstdatei für 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
```

### Konfiguracja bezpieczeństwa

Bezpieczeństwo to ważny aspekt konfiguracji Meilisearch. Utworzyliśmy dwa klucze, aby spełnić wymagania bezpieczeństwa. Klucz master, który umożliwia pełny dostęp do instancji Meilisearch, jest używany wyłącznie w backendzie. Z kolei klucz API, mający bardziej ograniczone uprawnienia, jest wykorzystywany do operacji wyszukiwania i innych zadań użytkowników. To rozdzielenie gwarantuje, że krytyczne operacje backendowe są bezpiecznie chronione, a interakcje we frontendzie pozostają wydajne i bezpieczne.

### Integracja z Laravel

Nasza platforma TutKit.com jest zbudowana na frameworku PHP Laravel, a jako podstawę integracji wykorzystaliśmy bibliotekę MeiliSearch-PHP. Klucz API jest używany w naszej aplikacji Laravel do łączenia się z Meilisearch. Znacząco zwiększa to bezpieczeństwo, ponieważ dostępne są wyłącznie funkcje dozwolone przez klucz API, co minimalizuje ryzyko nieautoryzowanych działań.

```
// Beispiel für die Konfiguration von Meilisearch in Laravel
'connections' => [
    'meilisearch' => [
        'host' => env('MEILISEARCH_HOST', 'http://localhost:7700'),
        'key' => env('MEILISEARCH_KEY', null),
    ],
],
```

### Indeksowanie i zarządzanie danymi

Centralnym aspektem naszego wdrożenia było wydajne zarządzanie danymi i ich indeksowanie. Opracowaliśmy niestandardowe polecenie konsolowe w Laravel, zaprojektowane specjalnie do obszernych aktualizacji lub do rozpoczęcia procesu indeksowania. Polecenie to celowo obejmuje wyłącznie te rekordy, które wymagają indeksowania. Dzięki temu unikamy zbędnego przetwarzania danych i koncentrujemy się na istotnych informacjach.

```
// Beispiel für einen benutzerdefinierten Konsolenbefehl in Laravel
Artisan::command('index:content', function () {
    // Code zur Indexierung der relevanten Datensätze
})->describe('Indexiere alle relevanten Inhalte');
```

Przykład jest oczywiście bardzo uproszczony. Nasz kod polecenia ma 400 linii.

### Automatyczna aktualizacja indeksów w wyszukiwarce

Istotną zaletą naszego wdrożenia jest zdolność do automatycznego wykrywania zmian w modelach Laravel i reagowania na nie. Za każdym razem, gdy dane są aktualizowane, dodawane lub usuwane, odpowiedni indeks MeiliSearch jest niezwłocznie i wydajnie aktualizowany, aby odzwierciedlić tylko te zmiany. To ukierunkowane podejście do indeksowania eliminuje konieczność pełnej reindeksacji wszystkich danych i sprawia, że nasze dane w Meilisearch są zawsze aktualne. Oto przykład kodu dla sytuacji, gdy zaktualizowano artykuł na blogu:

```
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);
            }
```

Także ten przykład kodu jest wyjątkowo prosty, a nasze linie kodu obsługują różne modele i różne statusy. Ale co do zasady jasne jest, o co chodzi.

### Optymalizacja i utrzymanie

Regularne utrzymanie i optymalizacja integracji z Meilisearch są kluczowe dla długoterminowej wydajności. Korzystając z regularnych aktualizacji Meilisearch, czerpiemy korzyści z ciągłych ulepszeń i nowych funkcji. Dzięki temu nasze rozwiązanie wyszukiwania jest zawsze aktualne i nadąża za rosnącymi wymaganiami naszej platformy.

Jeśli chcesz sprawdzić Meilisearch także w swoim projekcie, Twoi deweloperzy znajdą tutaj [dokumentację wdrożenia Meilisearch](https://www.meilisearch.com/docs).

    
        
            
                
                    

![Meilisearch Suche in Anwendung](https://4eck-media.de/wp-content/uploads/2025/11/Meilisearch_f5b0c6bff5-1920x1080.avif)
                
            
        
    

Na tej krótkiej animacji wyraźnie widać:

- wyszukiwanie jest ultraszybkie
- wyszukiwarka radzi sobie z literówkami i mimo to pokazuje właściwe wyniki
- natychmiastowe wyniki wyszukiwania pojawiają się już po kilku literach
- filtry wyszukiwania umożliwiają szybkie zawężenie wyników

## Efekty wdrożenia Meilisearch na TutKit.com

**Integracja Meilisearch** z TutKit.com przeprowadzona przez nasz własny zespół deweloperski okazała się wielkim sukcesem. Dzięki szybkiemu i skutecznemu rozwiązaniu wyszukiwania, które uwzględnia wielojęzyczność i duże ilości danych, znacząco poprawiliśmy doświadczenie użytkowników. Nasze samodzielnie opracowane wdrożenie pozwala nam kształtować funkcję wyszukiwania dokładnie według naszych potrzeb, zachowując jednocześnie kontrolę i bezpieczeństwo niezbędne dla wydajnej platformy contentowej.

Dzięki Meilisearch osiągnęliśmy znaczną poprawę szybkości i wydajności naszej funkcji wyszukiwania. Indeksowanie nowych danych jest teraz błyskawiczne, a obciążenie serwera wyraźnie spadło. Nasi użytkownicy korzystają z szybkich i trafnych wyników wyszukiwania, co znacząco poprawia doświadczenie użytkownika i redukuje frustrację spowodowaną długim czasem ładowania.

Z finansowego punktu widzenia dzięki wykorzystaniu wersji open source Meilisearch zaoszczędziliśmy znaczne koszty. Ponadto wysoka wydajność Meilisearch pozwala nam obejść się bez zewnętrznego wsparcia, co dodatkowo obniża nasze koszty.

Jesteśmy ciekawi, jak Meilisearch będzie się dalej rozwijać. Mamy nadzieję, że przyszłe wersje zintegrują jeszcze więcej funkcji AI, które będą jeszcze lepiej rozpoznawać **intencję wyszukiwania użytkowników** i ograniczą konieczność stosowania filtrów oraz opcji kategoryzacji. Meilisearch okazał się dla nas właściwym wyborem.

Podsumowując:  mamy teraz dzięki Meilisearch idealną wyszukiwarkę, która pomaga nam oferować użytkownikom naszej strony szybkie, wielojęzyczne i przyjazne rozwiązanie wyszukiwania… według naszej oceny jest to obecnie optymalna technologia wyszukiwania dla wyzwań klasy enterprise z setkami tysięcy lub milionami treści.

    
        
                                        

Dobra wyszukiwarka jest jak scena dla dużych platform contentowych, na której zawsze grane jest dokładnie to, co użytkownik chce zobaczyć. Bez Meilisearch nasza platforma byłaby tylko jedną z wielu – z przeciętnymi wynikami wyszukiwania i bez wyraźnej wartości dodanej, którą chcemy oferować naszym klientom. Ponieważ oferujemy model subskrypcyjny dla naszych treści, kluczowe jest, aby użytkownicy szybko i skutecznie znajdowali to, czego szukają. Meilisearch umożliwia to dzięki swojej technologii.

                                        
                                                                
                                                            Matthias Petri
                                                                    
                                                                                    
                                                TutKit.com, 
                                            
                                                                                                                            Założyciel
