Wyszukiwanie: Silnik Konwersji Sklepu
30% klientów odchodzi, gdy wyszukiwarka zwraca złe wyniki. Dowiedz się, jak poprawnie skonfigurować Elasticsearch i OpenSearch, wagi atrybutów, synonimy i layered navigation – krok po kroku.
30%
klientów opuszcza sklep po nieudanym wyszukiwaniu
2×
wyższa konwersja użytkowników korzystających z wyszukiwarki
<50ms
czas odpowiedzi OpenSearch przy poprawnej konfiguracji
Od Magento 2.4.0 MySQL search jest wyłączony – Elasticsearch lub OpenSearch jest wymagany. To nie ograniczenie, lecz awans: silniki pełnotekstowe oferują fuzzy matching, obsługę synonimów, fasetową nawigację i możliwość uczenia się na podstawie zapytań klientów. Klucz tkwi w poprawnej konfiguracji – domyślne ustawienia Magento to punkt startowy, nie ustawienia produkcyjne.
Elasticsearch vs OpenSearch – który wybrać?
Magento 2.4.6+ rekomenduje OpenSearch (fork Elasticsearch 7.x utrzymywany przez Amazon) ze względu na otwarty model licencjonowania i aktywny rozwój. Dla Magento 2.4.8 zalecany jest OpenSearch 2.x lub Elasticsearch 8.x. Technicznie różnica jest pomijalna – API są kompatybilne, większe znaczenie ma wersja silnika, konfiguracja serwera i tuning indeksu.
| Cecha | Elasticsearch 8.x | OpenSearch 2.x |
|---|---|---|
| Licencja | SSPL (płatna dla SaaS) | Apache 2.0 (open-source) |
| Wsparcie Magento 2.4.8 | Tak | Tak (zalecane) |
| Zarządzanie indeksami | Kibana | OpenSearch Dashboards |
| Rekomendacja dla nowych projektów | Jeśli już posiadasz | Tak |
Konfiguracja połączenia i diagnostyka przez CLI
Przed tuningiem wyników musisz upewnić się, że Magento poprawnie komunikuje się z silnikiem i że indeks jest aktualny. Najczęstszy błąd po instalacji to nieustawiony adres silnika lub brak wymaganej reindeksacji po zmianie ustawień.
Konfiguracja i diagnostyka silnika wyszukiwania
Kompletny zestaw komend do weryfikacji połączenia, sprawdzenia indeksu i wymuszenia reindeksacji.
# Sprawdzenie aktualnie skonfigurowanego silnika wyszukiwania:
php bin/magento config:show catalog/search/engine
# Ustawienie OpenSearch jako silnika (Magento 2.4.6+):
php bin/magento config:set catalog/search/engine opensearch
php bin/magento config:set catalog/search/opensearch_server_hostname localhost
php bin/magento config:set catalog/search/opensearch_server_port 9200
# Sprawdzenie statusu klastra OpenSearch/Elasticsearch:
curl -XGET 'http://localhost:9200/_cluster/health?pretty'
# Pełna reindeksacja wyszukiwarki (wymagana po zmianie konfiguracji):
php bin/magento indexer:reindex catalogsearch_fulltext
# Sprawdzenie statusu indeksu i czasu ostatniej reindeksacji:
php bin/magento indexer:status catalogsearch_fulltext
Wagi atrybutów (Search Weight) – klucz do trafności
Domyślnie Magento traktuje wszystkie atrybuty produktu równorzędnie. To oznacza, że opis produktu ma taką samą wagę jak SKU. Skutek? Zapytanie o konkretny model może zwracać na początku produkty, w których fraza pojawia się tylko w opisie, podczas gdy idealnie pasujący SKU ląduje na 3. stronie wyników.
Pro Tip: Optymalna konfiguracja wag atrybutów
Stores → Attributes → Product → [edytuj atrybut] → Storefront Properties → Search Weight. Zalecana hierarchia wag dla większości sklepów:
-- Zalecane wagi atrybutów wyszukiwania:
SKU → Weight: 10 (najwyższa – dopasowanie dokładne)
name → Weight: 8 (nazwa produktu – kluczowa dla klienta)
manufacturer → Weight: 6 (marka – ważna przy wyszukiwaniu brandowym)
short_desc → Weight: 4 (krótki opis – dodatkowy kontekst)
description → Weight: 2 (pełny opis – tylko wzmocnienie)
meta_keyword → Weight: 1 (słowa kluczowe meta – marginalny wpływ)
-- Po zmianie wag wymagana reindeksacja:
php bin/magento indexer:reindex catalogsearch_fulltext && php bin/magento cache:flush
Synonimy i Stopwords – język klienta
Klienci szukają w swoim języku, nie w języku karty technicznej produktu. Grupy synonimów (Marketing → SEO & Search → Search Synonyms) pozwalają zdefiniować, że “laptop”, “notebook” i “kom komputer” zwracają te same wyniki. Stopwords natomiast eliminują słowa funkcyjne (“i”, “z”, “na”), które szumią wyniki i spowalniają silnik.
Synonimy jedno- i dwukierunkowe
Jednokierunkowy: “TV” → “telewizor” (tylko TV znajdzie telewizory). Dwukierunkowy: “laptop, notebook” – oba zapytania zwracają te same wyniki.
Stopwords dla języka polskiego
Marketing → SEO & Search → Search Terms → Stopwords. Dodaj typowe polskie spójniki i przyimki, które nie niosą wartości wyszukiwania.
Fuzzy matching (tol. literówek)
OpenSearch/Elasticsearch automatycznie obsługuje literówki. Możesz dostroić poziom tolerancji przez konfiguracje indeksu (fuzziness: AUTO).
Search Terms Redirect
Marketing → SEO & Search → Search Terms. Możesz przekierować konkretne zapytania na stronę kategorii lub landing page – przydatne dla fraz sezonowych.
Layered Navigation – filtrowanie jako narzędzie konwersji
Layered Navigation (nawigacja fasetowa) to system filtrów po lewej stronie kategorii: cena, marka, kolor, rozmiar. Wydajność tych filtrów całkowicie zależy od silnika wyszukiwania – MySQL zwraca filtry w sekundy, Elasticsearch w milisekundy. Kluczowe ustawienie to oznaczenie atrybutów jako Use in Layered Navigation: Filterable.
Konfiguracja atrybutów dla Layered Navigation
Atrybuty muszą mieć właściwy typ i konfiguracje storefront, żeby pojawiały się w filtrach. Po każdej zmianie wymagana reindeksacja.
# Sprawdzenie atrybutu pod kątem konfiguracji wyszukiwania:
php bin/magento eav:attribute:show color catalog_product
# Reindeksacja filtrów layered navigation:
php bin/magento indexer:reindex catalog_category_product catalogsearch_fulltext
# Sprawdzenie indeksów związanych z wyszukiwaniem:
php bin/magento indexer:status | grep -E "catalog_product_attribute|catalogsearch"
# Po problemach z filtrami – przebudowanie indeksu od zera:
php bin/magento indexer:reset catalogsearch_fulltext && php bin/magento indexer:reindex catalogsearch_fulltext
Najczęstsze problemy z wyszukiwarką i ich naprawa
Wyszukiwarka nie zwraca żadnych wyników
Silnik nie jest osiągalny lub indeks jest pusty. Sprawdź cluster health i uruchom indexer:reindex catalogsearch_fulltext.
Filtry Layered Navigation nie działają
Atrybuty nie mają ustawionego Filterable lub brak reindeksacji po zmianie konfiguracji atrybutów.
Nowe produkty nie pojawiają się w wyszukiwarce
Indeks pracuje w trybie “Update by Schedule” – zmień na “Update on Save” lub sprawdź, czy cron działa poprawnie.
Wyszukiwanie bardzo wolne po imporcie
Zbyt duża ilość shardów lub za mało RAM dla silnika. Domyślna konfiguracja Magento tworzy nowy indeks przy każdej pełnej reindeksacji – stare indeksy się mogą kumulować.
Błąd "No alive nodes found"
Silnik wyszukiwania jest wyłączony lub firewall blokuje port 9200. Sprawdź: systemctl status opensearch.
Wyniki nie uwzględniają synonimów
Synonimy dodane w panelu wymagają pełnej reindeksacji catalogsearch_fulltext, żeby zostały włączone do indeksu.
Pro Tip: Monitoring zapytań i popularnych fraz (SQL)
Magento loguje każde zapytanie wyszukiwania. Analiza tych danych to kopalnia wiedzy o tym, czego klienci szukają – i czego nie mogą znależć.
-- 20 najczęściej wyszukiwanych fraz (ostatnie 30 dni):
SELECT query_text, num_results, popularity
FROM search_query
WHERE updated_at >= NOW() - INTERVAL 30 DAY
ORDER BY popularity DESC LIMIT 20;
-- Frazy bez wyników (kandydaci na synonimy lub nowe produkty):
SELECT query_text, popularity, updated_at
FROM search_query
WHERE num_results = 0
AND popularity > 5
ORDER BY popularity DESC LIMIT 50;
Poprawna konfiguracja wyszukiwarki to inwestycja, która bezpośrednio przekłada się na konwersję. W Mage24.pl dostarczamy prekonfigurowane środowiska z OpenSearch, gotowe wagi atrybutów i polskie słowniki synonimów – od pierwszego dnia produkcji.
Wyszukiwarka zwraca złe wyniki lub działa wolno?
Dostrojemy silnik wyszukiwania, skonfigurujemy synonimy i zoptymalizujemy layered navigation w Twoim sklepie.