Navigation and service panel


Content

This text is fallbacked from the German Version. If you need use Google Translate


Performante Produktsuche Teil 6 - Zusammenführung der einzelnen Teile

By Tobias Studer on 7. June 2013, No comments

Dieser letzte Teil der Mini-Serie führt alle Teile zusammen und zeigt die Anwendung für die Produkte.

Teil 1 - Übersicht und Vorbereitungen
Teil 2 - Index abfüllen mit dem VirtualProductsCrawler
Teil 3 - Abhängigkeit zwischen Produkten und Katalogen herstellen
Teil 4 - Index Performance optimieren
Teil 5 - Produkte suchen
Teil 6 - Zusammenführung der einzelnen Teile

TL;DR

Um eine performante Verlinkung von Produkten, welchen nicht direkt ein Katalog zugewiesen werden kann, sicherzustellen, bedarf es einige Konfiguration, Anpassungen in der Crawler- und Produkt-Implementation und zusätzlichen Code in der Suchlogik. Diese Mini-Serie beschreibt die einzelnen Schritte, um an dieses Ziel zu gelangen.

Automatisch auf dem schnellsten Weg die Produkt-Url generieren

Nun haben wir einiges an Vorarbeit geleistet. Zeit, die Früchte zu ernten. Die Produkte des SES-Modul werden auf die Sitecore.Ecommerce.Products.Product-Klasse gemappt. In dieser Klasse können wir das Url-Property überschreiben.

public virtual string Url
{
    get
    {
        if (string.IsNullOrEmpty(this.url))
        {
            VirtualProductResolver virtualProductResolver = Context.Entity.Resolve<VirtualProductResolver>();

            if (virtualProductResolver.ProductCatalogItem != null
                && virtualProductResolver.ProductCatalogItem.HasBaseTemplate(PRODUCT_CATALOG_TEMPLATE_ID))
            {
                this.url = virtualProductResolver.GetVirtualProductUrl(virtualProductResolver.ProductCatalogItem, this.InnerItem);
            }
            else
            {
                this.url = SearchFacade.GetProductUrl(this.Alias);
            }
        }

        return this.url;
    }

    private set
    {
        this.url = value;
    }
}

Kennt das Produkt seinen Katalog, dann wird die Url direkt aufgelöst. Kennt es den Katalog nicht, generieren wir die Url über die GetProductUrl(...)-Methode.

Zusammenfassung

Um eine performante Verlinkung von Produkten, welchen nicht direkt ein Katalog zugewiesen werden kann, sicherzustellen, bedarf es einige Konfiguration, Anpassungen in der Crawler- und Produkt-Implementation und zusätzlichen Code in der Suchlogik. Sind aber alle diese Änderungen umgesetzt, können wir nur noch über product.Url auf die Url zugreifen und diese wird über den schnellstmöglichen Weg generiert.

Categories  E-Commerce Tags  Lucene  Index  Suche

No comments

Add your comment

Your email address will not be published. Required fields are marked *

*