Elasticsearch in Magento 2
Sinds Magento 2.4 is Elasticsearch (of OpenSearch) verplicht voor de zoekfunctie.
Waarom Elasticsearch?
Voordelen boven MySQL search
- Veel snellere zoekresultaten
- Betere relevantie
- Fuzzy matching (typefouten)
- Faceted search support
- Schaalbaarheid
Vereisten
- Elasticsearch 7.x of 8.x
- Of OpenSearch 1.x/2.x
- Java runtime op server
Basis configuratie
Navigatie
Stores > Configuration > Catalog > Catalog > Catalog Search
Verbinding instellen
Verbinding testen
``bash
curl -X GET "localhost:9200"
`
Moet cluster info retourneren.
Index configuratie
Index aanmaken
Na configuratie, reindex de catalogus:
`bash
bin/magento indexer:reindex catalogsearch_fulltext
`
Index prefix
De prefix voorkomt conflicten als meerdere Magento installaties dezelfde Elasticsearch gebruiken:
- magento2_product_1_v1
- magento2_product_2_v1
Search attributen configureren
Attribuut searchable maken
Stores > Attributes > Product
Open attribuut
Storefront Properties:
- Use in Search: Yes
- Search Weight: 1-10
Search Weight
Hogere weight = meer invloed op relevantie:
- 10: Heel belangrijk (name, sku)
- 5: Gemiddeld (description)
- 1: Laag (meta keywords)
Aanbevolen weights
`
name: 10
sku: 10
short_description: 5
description: 3
manufacturer: 5
meta_keywords: 1
`
Zoekgedrag configureren
Minimum zoeklengte
Stores > Configuration > Catalog > Catalog > Catalog Search
- Minimal Query Length: 3
Maximum zoektermen
- Maximum Query Length: 128
Zoeksuggesties
- Enable Search Suggestions: Yes
- Search Suggestions Count: 5
- Show Results Count: Yes
Synonymen configureren
Waarom synonymen?
Klanten zoeken met verschillende termen:
- "broek" en "pants"
- "telefoon" en "smartphone"
Navigatie
Marketing > SEO & Search > Search Synonyms
Synonymen toevoegen
Klik New Synonym Group
Scope: Store View
Synonyms: "broek,pants,pantalon"
Sla op
Herindexeren
Na synonymen wijzigingen:
`bash
bin/magento indexer:reindex catalogsearch_fulltext
`
Stopwoorden
Wat zijn stopwoorden?
Woorden die worden genegeerd in zoekopdrachten:
- de, het, een
- the, a, an
- en, of, maar
Configuratie locatie
Stopwoorden worden op Elasticsearch niveau geconfigureerd, niet in Magento admin.
Custom analyzer
Voor geavanceerde stopwoord configuratie, pas Elasticsearch analyzer aan.
Search suggestions
Popup suggestions
Terwijl je typt verschijnen suggesties:
- Product namen
- Categorie namen
- Eerder gezochte termen
Configuratie
Stores > Configuration > Catalog > Catalog > Catalog Search
- Enable Search Suggestions: Yes
- Search Suggestions Count: 5
Popular search terms
Navigatie
Marketing > SEO & Search > Search Terms
Beheer
- Zie populaire zoektermen
- Redirect zoekterm naar specifieke URL
- Synonymen toevoegen
Redirect voorbeeld
Zoekterm "aanbieding" → Redirect naar
/sale pagina
Performance optimalisatie
Index settings
Elasticsearch index settings kunnen worden getuned:
- Number of shards
- Number of replicas
- Refresh interval
Voor grote catalogi
- Verhoog JVM heap size
- Meerdere nodes voor high availability
- SSD storage
Monitoring
Monitor Elasticsearch:
`bash
curl -X GET "localhost:9200/_cluster/health?pretty"
curl -X GET "localhost:9200/_cat/indices?v"
`
Troubleshooting
Zoeken werkt niet
Check Elasticsearch draait:
`bash
curl localhost:9200
`
Check Magento configuratie
Reindex catalogsearch:
`bash
bin/magento indexer:reindex catalogsearch_fulltext
`
Zoekresultaten incorrect
Check search weights
Verifieer attributen "Use in Search" = Yes
Check synonymen
Reindex
Connection refused
- Elasticsearch service niet gestart
- Firewall blokkeert poort 9200
- Verkeerd hostname/IP
Out of memory
Elasticsearch JVM needs meer memory:
`bash
# In elasticsearch.yml of jvm.options
-Xms2g
-Xmx2g
``
OpenSearch vs Elasticsearch
Waarom OpenSearch?
Amazon fork van Elasticsearch, volledig compatible met Magento.
Configuratie
Vrijwel identiek aan Elasticsearch. Selecteer "OpenSearch" als search engine.
Hosting overwegingen
- AWS: OpenSearch Service
- Andere clouds: Elastic Cloud of self-hosted
Best practices
Regelmatig herindexeren
Na grote catalogus wijzigingen, herindexeer voor optimale performance.
Monitor search logs
Analyseer wat klanten zoeken:
- Geen resultaten queries → Voeg synonymen toe
- Populaire termen → Optimaliseer die pagina's
Test zoekresultaten
Regelmatig testen:
- Vinden klanten producten?
- Zijn resultaten relevant?
- Werken synonymen?
Backup index
Elasticsearch data apart backuppen of kunnen herindexeren vanuit Magento.