Intelligente Produktsuchmaschine für E-Commerce

Botdienst
Cognitive Search
Cognitive Services
SQL-Datenbank
Web Apps

In diesem Beispielszenario wird veranschaulicht, wie durch die Verwendung eines dedizierten Suchdiensts die Relevanz der Suchergebnisse für Ihre E-Commerce-Kunden erheblich verbessert werden kann.

Die Suche ist der wichtigste Mechanismus, mit dem Kunden Produkte finden und diese dann erwerben. Daher ist es von entscheidender Bedeutung, dass Suchergebnisse in Bezug auf die Absicht der Suchabfrage relevant sind und die End-to-End-Suchumgebung den Umgebungen von großen Suchanbietern entspricht (nahezu sofortige Anzeige von Ergebnissen und Funktionen wie linguistische Analyse, Abgleich des geografischen Standorts, Filterung, Faceting, automatische Vervollständigung, Treffermarkierung usw.).

Stellen Sie sich eine typische E-Commerce-Webanwendung vor, bei der die Produktdaten in einer relationalen Datenbank wie SQL Server oder Azure SQL-Datenbank gespeichert sind. Suchabfragen werden häufig innerhalb der Datenbank verarbeitet, indem Features wie LIKE-Abfragen oder die Volltextsuche genutzt werden. Wenn Sie stattdessen Azure Cognitive Search verwenden, muss Ihre Betriebsdatenbank keine Abfragen mehr verarbeiten, und Sie können ganz einfach die Vorteile der schwierig zu implementierenden Features nutzen, mit denen Sie Ihren Kunden die größte Benutzerfreundlichkeit bei der Suche bieten. Da Cognitive Search eine PaaS-Komponente (Platform-as-a-Service) ist, müssen Sie sich auch nicht um die Verwaltung der Infrastruktur kümmern oder ein Suchexperte werden.

Mögliche Anwendungsfälle

Diese Lösung ist für den Einzelhandel optimiert.

Zu den weiteren relevanten Anwendungsfällen zählen:

  • Suchen nach Immobilienangeboten/-maklern in der Nähe des physischen Standorts des Benutzers
  • Suchen nach Artikeln auf einer Nachrichtenwebsite oder nach Sportergebnissen, wobei aktuelle Informationen bevorzugt werden
  • Durchsuchen von großen Repositorys nach dokumentorientierten Organisationen, z.B. Entscheidungsträgern und Notaren.

Letztendlich können alle Anwendungen, die über eine Art von Suchfunktionalität verfügen, von einem dedizierten Suchdienst profitieren.

Aufbau

Diagram showing an architecture overview of the Azure components involved in an intelligent product search engine for e-commerce.

Workflow

Mit diesem Szenario wird eine E-Commerce-Lösung abgedeckt, bei der Kunden einen Produktkatalog durchsuchen können.

  1. Kunden navigieren von vielen unterschiedlichen Geräten aus zur E-Commerce-Webanwendung.
  2. Der Produktkatalog wird in einer Azure SQL-Datenbank-Instanz für die Transaktionsverarbeitung verwaltet.
  3. Azure Cognitive Search nutzt eine Indexerstellung für die Suche, um den Suchindex per integrierter Nachverfolgung von Änderungen automatisch auf dem aktuellen Stand zu halten.
  4. Suchabfragen von Kunden werden auf den Dienst Azure Cognitive Search ausgelagert, der die Abfrage verarbeitet und die relevantesten Ergebnisse zurückgibt.
  5. Als Alternative zu einer webbasierten Suchumgebung können Kunden auch einen Konversationsbot in sozialen Netzwerken oder direkt über digitale Assistenten nutzen, um nach Produkten zu suchen und die Suchabfrage und die Ergebnisse inkrementell zu verfeinern.
  6. Optional kann das Feature Skillset verwendet werden, um künstliche Intelligenz zu nutzen und so eine noch intelligentere Verarbeitung zu erzielen.

Komponenten

  • App Services – Web-Apps hostet Webanwendungen und ermöglicht die Autoskalierung und Bereitstellung von Hochverfügbarkeit, ohne eine Infrastruktur verwalten zu müssen.
  • SQL-Datenbank ist ein relationaler verwalteter Datenbankdienst in Microsoft Azure für allgemeine Zwecke, der Strukturen wie relationale Daten, JSON, räumliche Daten und XML unterstützt.
  • Azure Cognitive Search ist eine Search-as-a-Service-Cloudlösung, die umfangreiche Suchfunktionen für private, heterogene Inhalte in Web- und Unternehmensanwendungen sowie in mobilen Anwendungen ermöglicht.
  • Bot Service bietet Tools zum Erstellen, Testen, Bereitstellen und Verwalten intelligenter Bots.
  • Cognitive Services ermöglicht die Verwendung intelligenter Algorithmen zum Sehen, Hören, Sprechen, Verstehen und Interpretieren der Wünsche von Benutzern bei Verwendung natürlicher Kommunikationsmethoden.

Alternativen

  • Sie können Funktionen für die datenbankinterne Suche verwenden, z.B. die SQL Server-Volltextsuche. In diesem Fall verarbeitet Ihr Transaktionsspeicher aber auch Abfragen (sodass eine höhere Verarbeitungsleistung benötigt wird), und die Suchfunktionen in der Datenbank sind stärker eingeschränkt.
  • Sie können die Open-Source-Anwendung Apache Lucene (auf der Cognitive Search basiert) in Azure Virtual Machines hosten, aber dann sind Sie selbst für die IaaS-Verwaltung (Infrastructure-as-a-Service) verantwortlich und profitieren nicht von den vielen Features, die Cognitive Search zusätzlich zu Lucene bietet.
  • Darüber hinaus haben Sie die Möglichkeit, Elasticsearch über den Azure Marketplace bereitzustellen. Hierbei handelt es sich um ein alternatives geeignetes Suchprodukt von einem Drittanbieter, aber auch in diesem Fall müssen Sie eine IaaS-Workload ausführen.

Andere Optionen für die Datenschicht:

  • Cosmos DB: Eine global verteilte Datenbank von Microsoft mit mehreren Modellen. Cosmos DB stellt eine Plattform für die Ausführung von anderen Datenmodellen bereit, z. B. Mongo DB, Cassandra, Graphdaten oder einfache Tabellenspeicherung. Cognitive Search unterstützt auch das direkte Indizieren von Daten über Cosmos DB.

Überlegungen

Skalierbarkeit

Der Tarif von Azure Cognitive Search wird hauptsächlich für die Kapazitätsplanung verwendet. Er definiert die maximale Speichergröße, die Sie erhalten, und die Anzahl von Partitionen und Replikaten, die Sie bereitstellen können. Mit Partitionen können Sie mehr Dokumente indizieren und höhere Schreibdurchsätze erzielen, während Replikate mehr Abfragen pro Sekunde und Hochverfügbarkeit ermöglichen.

Sie können die Anzahl von Partitionen und Replikaten dynamisch ändern, aber es ist nicht möglich, den Tarif zu ändern. Aus diesem Grund sollten Sie sich sorgfältig überlegen, welcher Tarif für Ihre Zielworkload richtig ist. Wenn Sie den Tarif trotzdem ändern müssen, müssen Sie einen neuen Dienst parallel bereitstellen und Ihre Indizes dafür neu laden. An diesem Punkt können Sie für Ihre Anwendungen dann auf den neuen Dienst verweisen.

Verfügbarkeit

Cognitive Search bietet eine Vereinbarung zum Servicelevel mit einer Verfügbarkeit von 99,9 % für Lesevorgänge (also Abfragen), wenn Sie mindestens über zwei Replikate verfügen, und für Updates (Aktualisierung der Suchindizes), wenn Sie mindestens über drei Replikate verfügen. Daher sollten Sie mindestens zwei Replikate bereitstellen, wenn Sie möchten, dass Ihre Kunden zuverlässig suchen können. Stellen Sie drei Replikate bereit, wenn die tatsächlichen Änderungen am Index ebenfalls als Hochverfügbarkeitsvorgänge angesehen werden sollten.

Falls grundlegende Änderungen am Index ohne Ausfallszeiten erforderlich sind (z.B. Änderung von Datentypen, Löschen oder Umbenennen von Feldern), muss der Index neu erstellt werden. Ähnlich wie beim Ändern der Dienstebene bedeutet dies, dass ein neuer Index erstellt werden muss, dieser wieder mit den Daten gefüllt werden muss und Ihre Anwendungen dann aktualisiert werden müssen, damit sie auf den neuen Index verweisen.

Sicherheit

Cognitive Search erfüllt viele Sicherheits- und Datenschutzstandards, sodass der Dienst in den meisten Branchen genutzt werden kann.

Zum Schützen des Zugriffs auf den Dienst werden für Cognitive Search zwei Arten von Schlüsseln verwendet: Administratorschlüssel, mit denen Sie für den Dienst jede beliebige Aufgaben durchführen können, und Abfrageschlüssel, die nur für schreibgeschützte Vorgänge wie Abfragen verwendet werden können. Normalerweise wird der Index von der Anwendung, die die Suche durchführt, nicht aktualisiert. Sie sollte daher nur mit einem Abfrageschlüssel und nicht mit einem Administratorschlüssel konfiguriert werden (vor allem, wenn die Suche über ein Endbenutzergerät durchgeführt wird, z.B. mit einem in einem Webbrowser ausgeführten Skript).

Suchrelevanz

Wie erfolgreich Ihre E-Commerce-Anwendung ist, richtet sich größtenteils nach der Relevanz der Suchergebnisse für Ihre Kunden. Wenn Sie Ihren Suchdienst sorgfältig optimieren, um basierend auf der Recherche der Benutzer optimale Ergebnisse zu liefern, oder integrierte Features wie die Analyse zum Suchdatenverkehr verwenden, um die Suchmuster Ihrer Kunden zu verstehen, können Sie anhand dieser Daten Entscheidungen treffen.

Beispiele für Möglichkeiten zur Optimierung Ihres Suchdiensts sind:

  • Verwendung von Bewertungsprofilen, um die Relevanz von Suchergebnissen zu beeinflussen, z.B. basierend darauf, welches Feld die Übereinstimmung mit der Abfrage ergeben hat, wie aktuell die Daten sind, wie die geografische Entfernung zum Benutzer ist usw.
  • Verwendung der von Microsoft bereitgestellten Sprachanalysen, für die ein Stapel zur Verarbeitung von natürlicher Sprache (Natural Language Processing, NLP) genutzt wird, um Abfragen besser interpretieren zu können
  • Verwendung von benutzerdefinierten Analysen, um sicherzustellen, dass Ihre Produkte richtig gefunden werden (vor allem, wenn Sie nach nicht sprachbasierten Informationen suchen möchten, z.B. Marke und Modell eines Produkts)

Bereitstellen dieses Szenarios

Wenn Sie eine Version dieses Szenarios bereitstellen möchten, können Sie diesem ausführlichen Tutorial folgen, das eine .NET-Beispielanwendung umfasst, die eine Website für die Jobsuche ausführt. In dem Tutorial werden die meisten der bisher in diesem Artikel thematisierten Azure Cognitive Search-Features erläutert.

Preise

Zur Ermittlung der Betriebskosten für dieses Szenario sind alle oben erwähnten Dienste im Kostenrechner vorkonfiguriert. Wenn Sie wissen möchten, welche Kosten für Ihren spezifischen Anwendungsfall entstehen, können Sie die entsprechenden Variablen an Ihre voraussichtliche Nutzung anpassen.

Auf der Grundlage des zu erwartenden Datenverkehrsaufkommens haben wir drei exemplarische Kostenprofile erstellt:

  • Klein: In diesem Profil verwenden wir eine einzelne Standard S1-Web-App zum Hosten der Website, den Free-Tarif des Azure Bot Service, eine einzelne Basic-Instanz des Azure Search-Diensts und eine SQL-Datenbank vom Typ Standard S2.
  • Mittel: Hier skalieren wir die Web-App vertikal auf zwei Instanzen des Standard S3-Tarifs hoch, upgraden den Search-Dienst auf den Standard S1-Tarif und verwenden eine SQL-Datenbank vom Typ Standard S6.
  • Groß: Beim größten Profil verwenden wir vier Instanzen einer Premium P2V2-Web-App, upgraden den Azure Bot Service auf den Standard S1-Tarif (mit 1.000.000 Nachrichten in Premium-Kanälen) und verwenden zwei Einheiten des Azure Search-Diensts vom Typ Standard S3 und eine SQL-Datenbank vom Typ Premium P6.

Nächste Schritte

Weitere Informationen zu Azure Cognitive Search finden Sie im Dokumentationscenter, und Sie können sich die Beispiele oder eine voll funktionsfähige Demowebsite in Aktion ansehen.