Technische Anforderungen Personalisierung

Allgemein

Die Personalisierung modifiziert die Suchergebnisse auf Basis vorangegangenen Userverhaltens. FACT-Finder muss den User also kennenlernen können, um sein Verhalten zu verstehen und die Suchergebnisse anzupassen. Dieser Lernvorgang basiert auf dem Tracking bestimmter Events. Alle Anfragen sind per Session-IDs verbunden. Deshalb kann die Personalisierung nur funktionieren, wenn alle Suchanfragen und alle Trackinganfragen eine Session-ID liefern.

Sobald sich ein User einloggt, muss FACT-Finder die User-ID per login Tracking Event (SCIC Tracking, standard) oder sessionInfo Tracking Event (AD Tracking) erfahren, damit die Session dem User zugeordnet werden kann. Danach kann von allen Events der Session gelernt werden.

Übersicht Anforderungen

  • Integration:
    • Vollständig integrierter FACT-Finder (ab 6.11)
    • Integriertes SCIC oder AD Tracking
  • Installation:
    • PostgreSQL Version 9.4

SCIC Tracking Anforderungen

  • Die Session ID muss mit jeder Suchanfrage mitgeschickt werden. Entweder über den sid URL-Parameter oder das TrackingInformation Objekt, wenn das Webservice Interface verwendet wird.

    Beispiel: Suchanfrage

    Search.ff?channel=de&query=women+shoes&sid=43caf1f33317971f2ee795af4
  • Vergewissern Sie sich, dass clickcart, und checkout Events korrekt übermittelt werden, inklusive der passenden Session-ID (via sid URL-Parameter oder TrackingInformation für das Webservice Interface)

    Beispiel: Checkout Event

    Tracking.ff?channel=de&event=checkout&id=shoe1234&count=1&price=39.99&sid=43caf1f33317971f2ee795af4
  • Das login Event wird mit den Parametern sid und userId  übermittelt, sobald sich ein User einloggt, sodass Suchen für diese Session personalisiert werden können.

    Beispiel: Login Event

    Tracking.ff?channel=de&event=login&userId=userXf4H3fF&sid=43caf1f33317971f2ee795af4
  • Zusätzlich erfordern personalisierte Produkt- und Recommendation-Ausgaben die Übergabe der Session-ID im Request

Installation

Einfaches Setup (Single Server)

Diese Setup-Variante können Sie nutzen, wenn Sie Ihren FACT-Finder per Single Server Variante betreiben. Sollten Sie die Cluster Variante nutzen, beachten Sie bitte die Informationen im Abschnitt "Server einrichten (Multi Server)" weiter unten.

fff.properties

  • usePersonalization=true
  • personalization.storage.directory={APP_RESOURCES}/personalization/

  • personalization.range=500 (die Personalisierung kann die Ergebnisrelevanz um maximal 5,00% verändern)

Server einrichten (Multi Server)

Dieser Abschnitt ist für Sie relevant, wenn Sie FACT-Finder in der Cluster Variante betreiben.

Grundsätzlich funktioniert die Personalisierung ohne weitere Konfiguration. Allerdings sollte man beachten, dass sie Daten in die Ressourcen schreibt, die ggf. den verfügbaren Plattenplatz auffüllen. Falls Sie den Personalisierungsordner aufräumen müssen, können Sie z.B. alle Dateien löschen, die kleiner als 1kB sind. Prinzipiell gilt aber: Je länger Sie Personalisierungsdaten vorhalten, desto länger profitieren Ihre Kunden durch individualisierte Suchergebnisse. Der Ort zum Speichern der Personalisierungs-Daten wird in der fff.properties mit dem Parameter personalization.storage.directory definiert.

Alternativ kann FACT-Finder diese Daten auch in eine PostgreSQL-Datenbank schreiben. Diese wird von FACT-Finder selbst erstellt. Nur die entsprechende Datenbank muss vorher manuell erstellt werden.

Folgende Schritte sind notwendig, um FACT-Finders Personalisierungsmodul zusammen mit einer PostgreSQL Datenbank betreiben zu können (am Beispiel von Debian):

Installieren Sie zunächst PostgreSQL 9.4 mittels apt-get install postgresql-9.4.

Wichtig: Verwenden Sie auf jeden Fall die PostgreSQL Version 9.4, da diese für den korrekten Betrieb der Personalisierung zwingend erforderlich ist. Andere Versionen werden nicht unterstützt.

Erstellen Sie nun einen Benutzer und eine Datenbank:

sudo -u postgres psql

CREATE USER perso WITH PASSWORD '<some password>';

CREATE DATABASE factfinder OWNER perso;

Legen Sie dann (immernoch im psql Tool) eine Standard Client Kodierung fest:

SET client_encoding TO utf8; (check with SHOW client_encoding;)

\q

Fügen Sie ein Verbindungs-String zur FACT-Finder Konfiguration fff.properties hinzu:

usePersonalization=true

Beispiel:

personalization.database.connectionString = host=localhost port=5432 dbname=factfinder connect_timeout=10 user=perso password=somePassword

Für den Fall, dass die Postgres Datenbank auf einem externen Server liegt, müssen Sie externe Verbindungen erlauben, so dass FACT-Finder auf diese zugreifen kann:

  • postgresql.conf: externen Server zulassen, z.B.: listen_addresses = '123.123.123.123'
  • pg_hba.conf: externen Zugriff auf FACT-Finder Datenbank zulassen, z.B.: host all all 123.123.123.123 255.255.255.255 trust

Nun kann FACT-Finder Personalisierungs-Daten in Ihre PostgreSQL schreiben und von dort auch wieder lesen.

Personalisierung und der Load Balancer

Wenn das Personalisierungs Modul aktiv ist, ist es wichtig, dass Suchanfragen einer Session immer von der gleichen Instanz beantwortet werden. Aus diesem Grund muss der Loadbalancer session-sticky konfiguriert werden und die Zuordnung anhand des Parameters sid durchführen. Der Parameter kann sowohl im HTTP-Header als auch in den URL-Parametern vorkommen, so dass eine Prüfung beider Vorkommnisse wichtig ist.

Siehe auch den Artikel zur Lastverteilung für mehr Informationen zum Loadbalancer.

Auf dieser Seite