Klienci nie mogli znaleźć produktów przez wyszukiwarkę mimo że produkty były widoczne w kategoriach. Wyszukiwanie po SKU, nazwie i opisie nie dawało wyników. Problem narastał przez 2 tygodnie po migracji na nowy serwer. Czas naprawy: 2 godziny.
Objawy
- Wyszukiwarka zwraca „Nie znaleziono produktów” dla wszystkich zapytań
- Produkty są widoczne w kategoriach i dostępne przez bezpośredni URL
- Problem pojawił się po migracji serwera
- Reindeks
catalogsearch_fulltextkończy się bez błędów ale nic nie zmienia
Diagnoza
# Sprawdź połączenie z OpenSearch
curl http://localhost:9200/_cat/health
# Sprawdź czy indeks Magento istnieje
curl http://localhost:9200/_cat/indices | grep magento
# Sprawdź liczbę dokumentów w indeksie
curl http://localhost:9200/magento2_product_1_v*/_count
# Sprawdź konfigurację OpenSearch w Magento
bin/magento config:show catalog/search/
# Ręcznie przetestuj zapytanie
curl -X GET "localhost:9200/magento2_product_1_v1/_search" -H 'Content-Type: application/json' -d '{"query": {"match": {"_all": "tshirt"}}}'
Przyczyna
Po migracji serwera OpenSearch działał na nowym IP. W konfiguracji Magento pozostał stary adres. Indeksowanie „kończyło się sukcesem” bo Magento nie sprawdzało odpowiedzi z OpenSearch – dane szły w pustkę.
Rozwiązanie
# Zaktualizuj konfigurację OpenSearch bin/magento config:set catalog/search/engine opensearch bin/magento config:set catalog/search/opensearch_server_hostname localhost bin/magento config:set catalog/search/opensearch_server_port 9200 # Wyczyść i przebuduj indeks bin/magento indexer:reset catalogsearch_fulltext bin/magento indexer:reindex catalogsearch_fulltext # Weryfikacja - sprawdź liczbę produktów w indeksie curl http://localhost:9200/magento2_product_1_v*/_count # Powinno zwrócić liczbę zbliżoną do liczby produktów w sklepie # Wyczyść cache bin/magento cache:flush
Wnioski
Po każdej migracji serwera sprawdź wszystkie zewnętrzne serwisy: OpenSearch, Redis, RabbitMQ. Dodaj monitoring który weryfikuje nie tylko że proces działa, ale że rzeczywiście zwraca poprawne dane (liczba dokumentów w OpenSearch powinna być zbliżona do liczby produktów).
