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 dasTrackingInformation
Objekt, wenn das Webservice Interface verwendet wird.Beispiel: Suchanfrage
Search.ff?channel=de&query=women+shoes&sid=43caf1f33317971f2ee795af4
Vergewissern Sie sich, dass
click
,cart
, undcheckout
Events korrekt übermittelt werden, inklusive der passenden Session-ID (viasid
URL-Parameter oderTrackingInformation
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 Parameternsid
unduserId
ü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)
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.