Einleitung
Wichtige Unternehmensdaten sind nicht nur auf Dateiservern und in Cloud-Speichern abgelegt, sondern auch in SaaS-Anwendungen und Datenbanken. Kundeninformationen in Salesforce, Produktstammdaten in internen Datenbanken, in CSV-Dateien verwaltete Listendaten – diese Daten sind normalerweise nur innerhalb des jeweiligen Systems durchsuchbar.
Dieser Artikel behandelt Szenarien, in denen SaaS- und Datenbankdaten in den Fess-Index importiert werden, um sie zusammen mit anderen Dokumenten systemuebergreifend durchsuchen zu koennen.
Zielgruppe
Personen, die SaaS- und Datenbankinformationen in die Suche einbeziehen moechten
Personen, die die Nutzung von Data-Store-Plugins erlernen moechten
Personen, die eine Suchplattform ueber mehrere Datenquellen hinweg aufbauen moechten
Szenario
Eine Vertriebsorganisation hat ihre Daten auf folgende Systeme verteilt.
Das Ziel ist es, all diese Daten mit Fess systemuebergreifend durchsuchbar zu machen, sodass die fuer Vertriebsaktivitaeten benoetigten Informationen ueber ein einziges Suchfeld gefunden werden koennen.
Salesforce-Datenintegration
Um Salesforce-Daten in Fess durchsuchbar zu machen, verwenden Sie das Salesforce-Data-Store-Plugin.
Plugin-Installation
Navigieren Sie zu [System] > [Plugins] im Administrationsbereich
Installieren Sie
fess-ds-salesforce
Verbindungseinstellungen
Fuer die Integration mit Salesforce muss eine Connected App konfiguriert werden.
Vorbereitung auf Salesforce-Seite
Erstellen Sie eine Connected App in den Salesforce-Einstellungen
Aktivieren Sie die OAuth-Einstellungen
Erhalten Sie den Consumer Key und das Consumer Secret
Konfiguration auf Fess-Seite
Navigieren Sie zu [Crawler] > [Data Store] > [Neu erstellen]
Handler-Name: Waehlen Sie SalesforceDataStore
Konfigurieren Sie Parameter und Skripte
Label: Setzen Sie
salesforce
Beispiel fuer die Parameterkonfiguration
base_url=https://login.salesforce.com
auth_type=oauth_password
username=user@example.com
password=your-password
security_token=your-security-token
client_id=your-consumer-key
client_secret=your-consumer-secret
Beispiel fuer die Skriptkonfiguration
url=url
title=title
content=content
last_modified=last_modified
Fuer auth_type geben Sie oauth_password (Benutzername/Passwort-Authentifizierung) oder oauth_token (JWT-Bearer-Token-Authentifizierung) an. Bei Verwendung der JWT-Authentifizierung setzen Sie den privaten RSA-Schluessel in private_key.
Auswahl der Zieldaten
Salesforce enthaelt viele Objekte, aber nicht alle muessen durchsuchbar sein. Konzentrieren Sie sich auf die Objekte, nach denen das Vertriebsteam haeufig sucht.
Datenbankintegration
Um interne Datenbankdaten durchsuchbar zu machen, verwenden Sie das Datenbank-Data-Store-Plugin.
Plugin-Installation
Installieren Sie das Plugin fess-ds-db. Dieses Plugin kann sich ueber JDBC mit verschiedenen Datenbanken verbinden (MySQL, PostgreSQL, Oracle, SQL Server usw.).
Konfiguration
Navigieren Sie zu [Crawler] > [Data Store] > [Neu erstellen]
Handler-Name: Waehlen Sie DatabaseDataStore
Konfigurieren Sie Parameter und Skripte
Label: Setzen Sie
database
Beispiel fuer die Parameterkonfiguration
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://db-server:3306/mydb?useSSL=true
username=fess_reader
password=your-password
sql=SELECT product_id, product_name, description, price, CONCAT('https://internal-app/products/', product_id) AS url FROM products WHERE status = 'active'
Beispiel fuer die Skriptkonfiguration
url=url
title=product_name
content=description
Die Ergebnisse der in sql angegebenen SQL-Abfrage werden gecrawlt. In Skripten verwenden Sie SQL-Spaltennamen (oder Spaltenbezeichnungen), um sie den Fess-Indexfeldern zuzuordnen.
SQL-Abfrage-Design
Wichtige Punkte beim Entwerfen der SQL-Abfrage fuer den sql-Parameter:
Fuegen Sie eine
url-Spalte hinzu, die als Linkziel in den Suchergebnissen dient (z.B.CONCAT('https://.../', id) AS url)Fuegen Sie Spalten hinzu, die als durchsuchbarer Textkoerper dienen
Verwenden Sie eine
WHERE-Klausel, um unnoetige Daten auszuschliessen (z.B.status = 'active')
In Skripten verwenden Sie die SQL-Spaltennamen direkt, um sie den Fess-Indexfeldern zuzuordnen.
CSV-Datei-Integration
Auch CSV-Dateidaten koennen durchsuchbar gemacht werden.
Konfiguration
Verwenden Sie das Plugin fess-ds-csv oder die CSV-Data-Store-Funktionalitaet.
Navigieren Sie zu [Crawler] > [Data Store] > [Neu erstellen]
Handler-Name: Waehlen Sie CsvDataStore
Konfigurieren Sie Parameter und Skripte
Label: Setzen Sie
csv-data
Beispiel fuer die Parameterkonfiguration
directories=/opt/fess/csv-data
file_encoding=UTF-8
has_header_line=true
separator_character=,
Beispiel fuer die Skriptkonfiguration (Spaltennamen verwenden, wenn eine Kopfzeile vorhanden ist)
url="https://internal-app/contacts/" + id
title=company_name
content=company_name + " " + contact_name + " " + email
Bei has_header_line=true koennen die Spaltennamen der Kopfzeile in Skripten verwendet werden. Wenn keine Kopfzeile vorhanden ist, werden Spalten ueber Nummern referenziert, z.B. cell1, cell2, cell3. Skripte koennen Groovy-Ausdruecke enthalten, einschliesslich Zeichenkettenverkettung.
Wenn CSV-Dateien regelmaessig aktualisiert werden, legen Sie den Ablageort fest und konfigurieren Sie einen Crawl-Zeitplan, damit die neuesten Daten automatisch im Index aktualisiert werden.
Systemuebergreifende Suche
Sobald alle Datenquellenkonfigurationen abgeschlossen sind, koennen Sie die systemuebergreifende Suche erleben.
Suchbeispiel
Eine Suche nach „ABC GmbH“ liefert beispielsweise folgende Ergebnisse:
Salesforce-Kontoinformationen (Account)
Angebotsdokumente vom Dateiserver (PDF)
Produktkaufhistorie aus der Datenbank
Messeteilnehmerliste aus CSV
Benutzer koennen die benoetigten Informationen finden, ohne sich Gedanken darueber machen zu muessen, wo diese gespeichert sind.
Filterung nach Label
Wenn es viele Suchergebnisse gibt, grenzen Sie diese mithilfe von Labels ein.
salesforce: Nur Salesforce-Datendatabase: Nur Datenbankdatencsv-data: Nur CSV-Datenshared-files: Nur Dateiserver-Dokumente
Betriebliche Ueberlegungen
Datenaktualitaet
SaaS- und Datenbankdaten koennen haeufig aktualisiert werden. Stellen Sie die Crawl-Haeufigkeit angemessen ein, um die Aktualitaet der Suchergebnisse zu gewaehrleisten.
Sicherheit der Datenbankverbindung
Wenn Sie sich direkt mit einer Datenbank verbinden, achten Sie besonders auf die Sicherheit.
Verwenden Sie einen Datenbankbenutzer mit Nur-Lese-Zugriff
Beschraenken Sie Verbindungen auf die IP-Adresse des Fess-Servers
Gewaehren Sie keinen Zugriff auf unnoetige Tabellen
Achten Sie auf eine sichere Passwortverwaltung
Zusammenfassung
Dieser Artikel behandelte Szenarien, um Salesforce-, Datenbank- und CSV-Dateidaten mit Fess durchsuchbar zu machen.
CRM-Datenintegration mit dem Salesforce-Data-Store-Plugin
Interne-DB-Integration mit dem Datenbank-Data-Store-Plugin
Listendatenintegration mit dem CSV-Data-Store
Feldzuordnung und SQL-Abfrage-Design
Nutzung von Labels bei der systemuebergreifenden Suche
Durch die Beseitigung von Datensilos koennen Sie eine Umgebung schaffen, in der alle Informationsquellen ueber eine einzige Plattform durchsuchbar sind. Damit ist der Abschnitt „Praktische Loesungen“ abgeschlossen. Ab dem naechsten Teil behandeln wir den Abschnitt „Architektur und Skalierung“, beginnend mit dem Mehrmandanten-Design.