Magento 2 OpenSearch en Elasticsearch Fouten: Hoe de Meest Voorkomende Problemen Oplossen

Producten die ontbreken in de zoekopdracht, herindexeringsfouten of "Geen actieve knooppunten gevonden in uw cluster"? Hier is hoe u de meest voorkomende OpenSearch- en Elasticsearch-problemen in Magento 2 kunt diagnosticeren en oplossen.

Magento 2 vertrouwt op een zoekmachine voor cataloguszoekopdrachten en, in de meeste configuraties, voor gelaagde navigatie op categoriepagina’s. Recente Magento 2.4 versies gebruiken OpenSearch (oudere versies gebruiken Elasticsearch). Wanneer de zoekmachine een probleem heeft, variëren de symptomen van lege zoekresultaten tot categoriepagina’s zonder producten en mislukte reindexeringen.

Deze gids behandelt de meest voorkomende fouten en hoe deze op te lossen.

Eerste controles

Is de zoekmachine operationeel en gezond?

curl -s http://localhost:9200
curl -s http://localhost:9200/_cluster/health?pretty
curl -s http://localhost:9200/_cat/indices?v
  • groen: alles goed
  • geel: replica’s niet toegewezen. Normaal bij een single-node setup als indices replica’s hebben
  • rood: primaire gegevens ontbreken, vereist aandacht

Welke engine en host gebruikt Magento?

bin/magento config:show catalog/search/engine
bin/magento config:show catalog/search/opensearch_server_hostname
bin/magento config:show catalog/search/opensearch_server_port

(Voor Elasticsearch gebruiken de paden elasticsearch7_ in plaats van opensearch_.)

Fout: “Kon een verbinding niet valideren” / “Geen actieve knooppunten gevonden in uw cluster”

Magento kan de zoekmachine niet bereiken.

Oorzaken en oplossingen:

  • Service gestopt: sudo systemctl status opensearch en controleer de logs. Vaak is het gestopt vanwege gebrek aan geheugen.
  • Verkeerde host of poort in Magento-configuratie: los dit op met bin/magento config:set catalog/search/opensearch_server_hostname localhost
  • Authenticatie ingeschakeld in OpenSearch (beveiligingsplugin) maar niet geconfigureerd in Magento: stel de gebruikersnaam en het wachtwoord in de zoekconfiguratie in, of configureer de zoekmachine dienovereenkomstig
  • HTTPS vs HTTP mismatch: De beveiligingsplugin van OpenSearch schakelt standaard HTTPS in bij veel installaties
  • Firewall of Docker-netwerken: de hostnaam verschilt binnen containers (bijvoorbeeld opensearch in plaats van localhost)

Test vanaf de Magento-server zelf met curl naar de geconfigureerde host en poort.

Fout: index alleen-lezen / “VERBODEN/12/index alleen-lezen / toestaan verwijderen”

De zoekmachine blokkeert schrijfbewerkingen wanneer de schijf bijna vol is (de flood-stage disk watermark). Herindexeren mislukt.

Oplossing:

  1. Vrije schijfruimte (oude logs, back-ups, ongebruikte indexen)
  2. Verwijder het blok van indices:
curl -X PUT "http://localhost:9200/_all/_settings" -H 'Content-Type: application/json' -d '{"index.blocks.read_only_allow_delete": null}'

Recente versies verwijderen het blok automatisch wanneer het schijfgebruik daalt, maar ruimte vrijmaken is altijd stap één.

  1. Hernummeren:
bin/magento indexer:reindex catalogsearch_fulltext

Fout: circuit breaking uitzondering / “Gegevens te groot”

De zoekmachine heeft niet genoeg heap-geheugen voor de aanvraag.

Oplossing:

  • Verhoog de JVM-heap (in jvm.options of de OPENSEARCH_JAVA_OPTS omgevingsvariabele). Een algemene regel is om de heap tot de helft van het beschikbare RAM op een dedicated server te geven, en minimum en maximum heap gelijk te houden.
  • Zorg ervoor dat de server voldoende RAM in totaal heeft; de zoekmachine concurreert met MySQL en PHP op single-server configuraties.

Producten ontbreken op zoek- of categoriepagina’s

Oorzaken:

  • Reindex niet uitgevoerd of mislukt: controleer bin/magento indexer:status
  • Product niet zichtbaar in zoekopdracht (zichtbaarheidsinstelling), uitgeschakeld, niet op voorraad met “toon niet op voorraad” uit, of niet toegewezen aan de website
  • Cron draait niet, dus “Update by Schedule” indexers verwerken nooit wijzigingen

Oplossing:

bin/magento indexer:status
bin/magento indexer:reindex catalogsearch_fulltext
bin/magento cache:flush

En controleer of cron draait (zie de Magento 2 opdrachten spiekbriefje).

Fout: “Resultaatvenster is te groot”

Komt voor bij grote catalogi wanneer iemand zeer diep in de resultaten bladert.

Oplossing: houd index.max_result_window op een redelijk niveau en beperk hoe diep de paginering kan gaan in de frontend, in plaats van de limiet zeer hoog te verhogen.

Reindexeren is erg traag

  • Zoekmachine op trage schijven of met te weinig heap
  • Te veel doorzoekbare attributen: bekijk welke attributen echt “Gebruik in Zoekopdracht” en “Gebruik in Gelaagde Navigatie” nodig hebben.
  • Batchgrootte-instellingen en parallelle reindexering in nieuwere Magento-versies
  • MySQL-prestaties tijdens de gegevensverzamelingsfase

Upgrade van Elasticsearch naar OpenSearch

Bij het upgraden van Magento moet u mogelijk van Elasticsearch naar OpenSearch overstappen:

  1. Controleer welke versies uw doel Magento-release ondersteunt (zie hoe u Magento 2 kunt upgraden)
  2. Installeer OpenSearch naast de oude engine op staging
  3. Schakel de Magento-configuratie over naar OpenSearch
  4. Voer een volledige herindexering uit
  5. Test zoekopdracht, gelaagde navigatie en sorteren

Controleer ook extensies die rechtstreeks met Elasticsearch communiceren (geavanceerde zoekmodules) op OpenSearch-compatibiliteit.

Voorkom problemen

  • Bewaken van clustergezondheid, schijfgebruik en heap-geheugen
  • Geef de zoekmachine toegewezen geheugen
  • Houd het schijfgebruik goed onder de drempels
  • Logboeken roteren
  • Voer regelmatig reindexcontroles uit na imports

Veelgestelde vragen

Kan Magento 2.4 draaien zonder OpenSearch of Elasticsearch?

Magento 2.4 vereist een ondersteunde zoekmachine. MySQL-zoekopdrachten zijn verwijderd in 2.4.

Moet de zoekmachine op dezelfde server draaien als Magento?

Voor kleine winkels kan dat. Voor grotere winkels voorkomt een aparte server of beheerde service geheugenconcurrentie en verbetert de stabiliteit.

Waarom is de gelaagde navigatie leeg na een reindex?

Vaak omdat de reindexering halverwege is mislukt, of de zoekmachine niet bereikbaar was tijdens het proces. Controleer de logs en reindexeer opnieuw.

Heeft u hulp nodig bij Magento-zoekopdrachten?

Ik los OpenSearch- en Elasticsearch-problemen op, optimaliseer de zoekprestaties en verzorg Magento-upgrades. Bekijk mijn Magento 2 en Hyvä-service of vraag ondersteuning aan.