Het nut van Magento indexeringen

Een collega vroeg mij vandaag wat het nut is van Magento indexes, over dit onderwerp bleek niet genoeg duidelijke informatie te vinden; in dit artikel zal ik je uitleggen wat het nut is van Magento indexes en hoe je deze kunt gebruiken.

photo credit: jasonpearce via photopin cc

photo credit: jasonpearce via photopin cc

Er zijn een aantal verschillende soorten indexes die je Magento webwinkel gebruikt. Stuk voor stuk zorgen zij ervoor dat de webwinkel eens stuk sneller draait.

Platte index

Hiervoor zijn zijn een tweetal indexes beschikbaar, 1 voor categorieen en 1 voor producten. Standaard zijn de categorie en product EAV (Entity Attribute Value) entiteiten. Deze manier van database opzet is erg handig om flexibel attributen toe te voegen aan een entiteit (zoals een product). Het is echter wel een performance killer aangezien er veel meer database queries en lookups nodig zijn om resultaten op te halen. Dit is waar de Magento indexer te hulp schiet.

De Magento indexer transformeert de EAV (Entity Attribute Value) structuur in een platte structuur. Dit betekent dat het een tabel ( 1 voor elk winkelzicht in Magento ) met een kolom die correspondeert et een attribute. Dit maakt het selecteren van gegevens snel! Alle categorie attributen worden omgezet in tabel kolommen. Voor producten worden enkel de attributen meegenomen die aangevinkt zijn als “gebruik in product overzicht” of “used in product listing”. Dit heeft als reden dat wanneer je een hoop verschillende soorten producten verkoopt met verschillende attributen het niet werkbaar is om deze in 1 grote tabel met een duizend aantal kolommen te zetten.

Overigens worden sommige producten uitgeschakeld wanneer deze niet horen bij een bepaalde webshop ( store view ) of wanneer er geen noodzaak is om deze mee te nemen in bijvoorbeeld de zoekindex. Deze worden uitgezonderd door de indexer. De aangemaakte platte tabellen worden gebruikt voor het lezen van data in de frontend (voorzijde van de webwinkel). De backend zal altijd gebruik maken van de EAV structuur om altijd de meest recente en juiste gegevens te tonen.

Magento indexes

Magento indexes

Hieronder zie je een overzicht van de verschillende soorten indexes in Magento:

Productattributen ( product attributes )
Deze index verzameld alle attributen die gebruikt kunnen worden in onder andere gelaagde navigatie ( layered navigation ). Het hebben van alle product attributen in 1 plek maakt het navigeren een stuk sneller.

Tags indexeren ( tag aggregration data )
Deze index houdt bij welke tags er zijn toegewezen aan producten. Zo kan een “zonnebril” de tag “zomer”, “zon” en “bescherming” hebben.

URL herschrijvingen ( URL redirects )
Dit zijn webadressen die veranderd zijn na een aanpassing van een product. Was het eerst bijvoorbeeld: “mijn-product” en nu “jouw-product” dan zal de URL rewrite index deze wijziging indexeren om een lookup te versnellen. Deze index bevat URL herschrijvingen van producten en categorieen. Dit voorkomt dat Magento door alle producten en categorie URL’s moet zoeken om te zien of er 1 overeenkomt.

Voorraadstatus ( stock status )
Voor simpele producten is het gemakkelijk, deze kunnen namelijk in voorraad zijn, of niet. Voor configureerbare, gegroepeerde en gebundelde producten is dit niet zo makkelijk. Deze producten kunnen in- of uit- voorraad zijn afhankelijk van de toegewezen producten aan het hoofd product. Dit is, en je raad het al, een stuk sneller om op te zoeken aangezien het opzoeken van de realtime status veel meer database queries nodig heeft.

Catalogus zoekindex ( catalog search index )
Je kunt zoeken naar producten aan de hand van veel attribuut waardes. Sommige van deze attributen worden niet meegenomen in de platte tabel structuur die aangemaakt wordt door de indexer. Deze index vult een tabel met zoekbare attribuut waardes voor producten zodat deze makkelijke te vinden zijn op basis van ingevoerde zoektermen. Het hebben van alle informatie in 1 tabel ( or 1 kolom ) maakt het mogelijk om een Full text search uit te voeren om relevante resultaten te vinden.

Catalogus categorie / product index ( catalog category / product index )
Deze schoont de URL herschrijf regels op door in te stellen welke URL hoort bij welk product of categorie. Het is een makkelijke manier voor het interne URL management systeem om te bepalen welke categorie of product geladen moet worden aan de hand van een URL. Dit voorkomt dat Magento door alle producten en/of categorieen moet zoeken om het juiste resultaat te retourneren en te tonen aan de bezoeker van de webwinkel.

Catalogus product prijs ( catalog product price )
De prijs van en product hangt af van een aantal variabelen in Magento. Bijvoorbeeld: een klantengroep, website of catalogus korting regels. Zoals het geval is bij een catalogus zoekindex is het verkrijgen van de prijs van producten een intensieve bewerking op de database. De indexer aggregeert de data in tabellen die lijken op: catalog_product_index_price_*. Deze maakt het selecteren / filteren op prijzen een stuk sneller.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *