Zum Hauptinhalt springen

Index

Einführung in den Index in ConSol CM

ConSol CM speichert die meisten Daten in einer relationalen Datenbank. Zur Verbesserung der Performance von Suchvorgängen werden Apache Lucene-Indexe verwendet. Es wird für jedes Datenfeld, nach dem gesucht werden soll, ein Index erstellt. Die Indexe werden im Dateisystem, in einem Unterverzeichnis des Datenverzeichnisses gespeichert. Die Komponente zur Indexverwaltung heißt Indexer.

Es gibt drei Arten von Suchen:

  • Schnellsuche: Einfache Freitextsuche über ein Suchfeld oben rechts im Web Client
  • Detailsuche: Erweiterte Suche auf eigener Seite, in der mehrere Suchkriterien kombiniert werden können
  • Autocomplete-Suche: Kontextabhängige Freitextsuche, die in bestimmte Seiten integriert ist

Der Index ist notwendig, um in ConSol CM nach Objekten suchen zu können. Die Indizierung umfasst die grundlegenden Benutzer- und Vorgangsdaten, den gesamten Vorgangstext, die Attachments (einstellbar in der System-Property cmas-core-index-common, index.attachment) und die Datenfelder mit der Einstellung Für Suche indiziert. Die für den Index konfigurierten Datenfelder stehen als Suchkriterien in der Detailsuche zur Verfügung und können auf Kontakt- und Ressourcenseiten eine Autocomplete-Suche auslösen. In der Schnellsuche werden die Objekte angezeigt, die den Suchbegriff in einem indizierten Feld enthalten.

Zusätzlich müssen Felder für folgende Anwendungsfälle indiziert werden:

  • Feld wird als Tabellenspalte verwendet und es soll möglich sein, die Tabelle nach dieser Spalte zu sortieren
  • Feld wird in Skripten für die Suche nach Entitäten verwendet, z. B. mithilfe von Criteria-Objekten wie TicketCriteria, UnitCriteria oder ResourceCriteria.

Verfügbare Einstellungen für den Index

Die Konfiguration des Index erfolgt an verschiedenen Stellen. Die in diesem Abschnitt beschriebenen Elemente müssen konfiguriert werden, damit der Index richtig funktioniert. Zusätzlich können Sie in den System-Properties diverse Feinjustierungen vornehmen, siehe Feinjustieren des Indexers.

Datenverzeichnis

Die Indexe werden im Dateisystem, in einem Unterverzeichnis des Datenverzeichnisses, das bei der Systemeinrichtung angegeben wird, gespeichert. Der Pfad des Datenverzeichnisses wird in der System-Property cmas-core-shared, data.directory gespeichert.

Folgende Anforderungen müssen erfüllt sein, damit der Index richtig funktioniert:

  • Das Datenverzeichnis ist immer für den ConSol CM-Server verfügbar, auch wenn es auf einem anderen Server erstellt wurde oder auf dem Application Server gemountet ist.
  • Das Datenverzeichnis hat ausreichend Speicherplatz für die Indexe.

Feldeinstellungen

Die Datenfelder, die als Suchkriterien verfügbar sein sollen, müssen festgelegt werden, indem die Einstellung Für Suche indiziert für das entsprechende Feld gesetzt wird. Dies erfolgt in der Datenfeldverwaltung, siehe TODO.

The data fields which should be available as search criteria need to be specified by setting Indexed for search for the respective field. This is done in the data field administration.

Es gibt vier mögliche Werte:

  • True: Es wird ein Index für das Feld erstellt, sodass anhand dieses Feldes nach dem Objekt (Vorgang, Kontakt oder Ressource) gesucht werden kann. Es wird nur das Objekt selber gefunden.
  • True (Firma + Personen): Nur für Kontakte relevant. Es wird ein Index für das Feld erstellt, sodass anhand dieses Feldes nach dem Kontakt gesucht werden kann. Bei Personen wird nur die Person selber gefunden. Bei Firmen, werden auch die Personen der Firma gefunden.
  • True (Firma + Personen + Vorgänge): Nur für Kontakte relevant. Es wird ein Index für das Feld erstellt, sodass anhand dieses Feldes nach dem Kontakt gesucht werden kann. Bei Personen werden auch die Vorgänge der Person gefunden. Bei Firmen werden auch die Vorgänge der Firma, die Personen der Firma und die Vorgänge der Personen der Firma gefunden.
  • False: Es wird kein Index für das Feld erstellt, sodass nicht anhand des Feldes gesucht werden kann.
Performance-Hinweise

Das Einschließen von Vorgängen und Personen für Kontaktfelder kann negative Auswirkungen auf die Indexer-Performance haben, wenn die Firma oder Person viele Vorgänge bzw. die Firma viele Personen hat. Das liegt daran, dass alle Vorgänge oder Personen neu indiziert werden müssen, wenn Änderungen am Feld vorgenommen werden. .

Verschachtelte Felder, wie in Listen oder Tabellen, müssen alle den gleichen Indizierungstyp haben. Andernfalls können sie nicht durchsucht werden. Wenn Sie beispielsweise mit einer Tabelle arbeiten, müssen die Datenfelder des Typs Liste, Spalten, und alle Datenfelder innerhalb der Tabelle, die durchsucht werden sollen, den Wert "True" für die Einstellung Für Suche indiziert haben.

Für String-Felder kann eine phonetische Suche aktiviert werden. Bei der phonetischen Suche enthalten die Ergebnisse nicht nur exakte Treffer, sondern auch Treffer, die ähnlich klingen, aber anders geschrieben werden als der Suchbegriff, beispielsweise "Mayer" statt "Meier". Um die phonetische Suche für ein Datenfeld zu aktivieren, setzen Sie Phonetische Suche für das Feld auf den Wert "true".

Aktualisierungsmodi

Es gibt zwei Arten von Änderungen, die Indexaktualisierungen erforderlich machen:

  • Operative Änderungen: Änderungen an Vorgängen, Kontakten, Ressourcen und Benutzern
  • Administrative Änderungen: Änderungen an der Konfiguration

Operative Änderungen werden immer direkt verarbeitet. Für die Verarbeitung von administrativen Änderungen gibt es zwei Modi:

  • Verarbeitung direkt starten: Administrative Änderungen werden direkt verarbeitet. Aktivieren Sie die Checkbox Alle administrativen Änderungen werden automatisch auf den Index angewendet.
  • Verarbeitung manuell starten: Administrative Änderungen werden verarbeitet, wenn der Benutzer auf der Indexseite auf den Button Administrative Änderungen anwenden klickt. Deaktivieren Sie die Checkbox Alle administrativen Änderungen werden automatisch auf den Index angewendet.

Die direkte Verarbeitung von administrativen Änderungen kann sich negativ auf die Indexer-Performance auswirken, wenn Änderungen eine Neuindizierung von vielen Objekten erforderlich machen, z. B. es wird ein Datenfeld, das in allen Vorgängen verwendet wird, zum Index hinzugefügt.

Siehe Technischer Hintergrund des Index für weitere Details.

Grundlegende Aufgaben

Es gibt zwei Arten von Aufgaben im Zusammenhang mit dem Index:

  • Aufgaben im Zusammenhang mit der Konfiguration: Diese Aufgaben werden bei der Konfiguration des ConSol CM-Systems durchgeführt.
  • Aufgaben im Zusammenhang mit dem Betrieb: Diese Aufgaben werden ausgeführt, wenn Sie ein ConSol CM-System betreiben.

Aufgaben im Zusammenhang mit der Konfiguration

Sie können folgende Aufgaben im Zusammenhang mit der Konfiguration des Index durchführen:

  • Entscheiden Sie, welche Datenfelder indiziert werden sollen, d. h. in der Suche verfügbar sein sollen, siehe Feldeinstellungen.
  • Entscheiden, ob Attachments indiziert werden sollen, siehe System-Property cmas-core-index-common, index.attachment. Der Standardwert ist true, d. h. die Attachments werden indiziert.
  • Entscheiden Sie, ob administrative Änderungen automatisch angewendet werden sollen, siehe Aktualisierungsmodi.

Aufgaben im Zusammenhang mit dem Betrieb

Sie können folgende Aufgaben im Zusammenhang mit dem Betrieb des Index durchführen:

  • Aktuelle Indexaufgaben überprüfen: Die aktuellen Indexaufgaben werden in der Tabelle auf der Seite Index angezeigt. Sie können die ID, den Aufgabentype (zeigt den Ursprung der Aufgabe), den Status (ausstehend, in Bearbeitung oder pausiert), das Erstellungsdatum, den Fortschritt und die Details (welche Informationen im Index aktualisiert werden) sehen.

  • Aktuelle Indexaufgaben verwalten: Sie können eine Indexaufgabe, die sich in Bearbeitung befindet, pausieren, indem Sie in der entsprechenden Zeile auf das Icon Pausieren klicken. Pausierte Indexaufgaben können durch Klicken auf das Icon Fortsetzen fortgesetzt werden.

  • Indexstatus überprüfen: Der Indexstatus wird unter den Buttons in der Kopfzeile angezeigt und zusätzlich in der System-Property cmas-core-index-common, index.status gespeichert. Es gibt drei Status:

    • GRÜN: Alle Indexaufgaben wurden erfolgreich durchgeführt. Zu Beginn des Synchronisierungsprozesses wird der Indexstatus auf GRÜN gesetzt. Wenn Probleme auftreten, wechselt er zu GELB oder ROT.
    • GELB: Es wurden behebbare Probleme erkannt. Dieser Status wird gesetzt, wenn es ausstehende administrative Änderungen gibt (Alle administrativen Änderungen werden automatisch auf den Index angewendet nicht ausgewählt) oder eine Retry-Aufgabe erstellt wurde.
    • ROT: Es sind Fehler aufgetreten. Der Index muss neu erstellt werden.
  • Index neu erstellen: Wenn der Indexstatus ROT ist, müssen Sie den Index neu erstellen, indem Sie auf den Button Index neu erstellen klicken. Alle ausstehenden Indexaufgaben werden verworfen und der Index wird entsprechend der im Modalfenster gewählten Optionen neu erstellt:

    • Vorgänge: Legt die Reihenfolge der Indizierung der Vorgänge fest. Sie können Queues zur Liste der Priorisierten Queues hinzufügen und sie sortieren, um die Indizierungsreihenfolge festzulegen. Die Vorgänge aus den Verbleibenden Queues werden danach indiziert. Mit den Optionen über der Liste können Sie entscheiden, wie geschlossene Vorgänge behandelt werden sollen:
      • Offene Vorgänge nach Queue-Priorisierung zuerst indizieren: Indiziert zuerst die offenen Vorgänge nach Queue-Priorisierung. Danach werden die geschlossenen Vorgänge indiziert.
      • Offene und geschlossene Vorgänge nach Queue-Priorisierung indizieren: Indiziert die offenen und geschlossenen Vorgänge nach Queue-Priorisierung.
    • Attachments: Legt fest, wann die Attachments indiziert werden:
      • Vorgänge direkt mit Attachments indizieren: Die Attachments werden zusammen mit den Vorgängen, zu denen sie gehören, indiziert. Mit dieser Option dauert es länger, bis alle Vorgänge indiziert sind.
      • Erst Vorgänge und danach Attachments indizieren: Zuerst werden die Vorgänge ohne Attachments indiziert. Die Attachments werden danach indiziert. Mit dieser Option sind die Vorgänge schneller in der Suche verfügbar, da die Indizierung der Attachments länger dauert.

    Klicken Sie auf Neuerstellung starten, um den Index zu synchronisieren.

    info

    Der vorhandene Index wird während des Prozesses der Neuerstellung nicht gelöscht. Daher sind die Suchfunktionen verfügbar, während der Prozess läuft. Änderungen, die nach dem Start der Neuerstellung gemacht wurden, werden sofort in den Index übernommen, da diese Daten eine höhere Priorität haben, als die Daten, die aufgrund einer manuell ausgelösten Indexaktualisierung synchronisiert werden.

  • Index für einen bestimmten Zeitraum neu erstellen: Sie können den Index für einen bestimmten Zeitraum neu erstellen, wenn es während dieser Zeit bekannte Probleme mit dem Indexer gab. Klicken Sie auf den Button Index für Zeitraum neu erstellen, um den Zeitraum auszuwählen. Alle Änderungen (Erstellung und Aktualisierung), die im ausgewählten Zeitraum gemacht wurden, werden neu indiziert. Löschungen und Änderungen an den Feldeinstellungen werden nicht berücksichtigt.

  • Index reparieren: Sie können den Index reparieren, indem Sie auf den Button Retry-Aufgaben ausführen klicken. Es werden alle ausstehenden Indexaufgaben des Typs Retry-Aufgaben ausgeführt.

  • Administrative Änderungen anwenden: Wenn die Checkbox Alle administrativen Änderungen werden automatisch auf den Index angewendet nicht markiert ist, müssen Sie auf den Button Administrative Änderungen anwenden klicken, um den Index nach Konfigurationsänderungen zu aktualisieren.

Neuerstellung des Index mittels MBeans

Sie können den Index mit der MBean-Methode recreateIndex für den jeweiligen Objekttyp neu erstellen:

  • Vorgänge: core.ticketIndexService
  • Kontakte: core.unitIndexService
  • Ressourcen: core.resourceIndexService
  • Benutzer: core.engineerIndexService

Erweiterte Aufgaben

Feinjustieren des Indexers

Das Verhalten des Indexers kann über System-Properties, siehe System-Properties feinjustiert werden. Die relevanten Properties befinden sich im Modul cmas-core-index-common. Mit diesen Properties können Sie Parameter anpassen, um die Indexer-Performance zu verbessern, z. B. die Anzahl der Threads, oder ob Attachments indiziert werden oder nicht.

Feinjustieren der Suche

Es gibt mehrere Möglichkeiten, um die Suchfunktionen anzupassen:

  • Autocomplete-Suche: Die Autocomplete-Suche kann in der Seitenanpassung der jeweiligen Stelle angepasst werden:

    • E-Mail-Editor: mailTemplate
    • Kontaktabschnitt eines Vorgangs: unitAutocomplete
  • Schnellsuche: Das Verhalten der Schnellsuche kann im Typ globalSearchField der Seitenanpassung angepasst werden. Sie können die Anzahl der angezeigten Ergebnisse in der System-Property cmweb-server-adapter, globalSearchResultSizeLimit definieren. Die Anzeigenamen der gefundenen Kontakte und Ressourcen wird mithilfe von Templates festgelegt.

  • Detailsuche: Das Verhalten der Detailsuche kann im Typ detailSearch der Seitenanpassung angepasst werden. Sie können die Länge der Ergebnistabelle in der System-Property cmweb-server-adapter, searchPageSize und die verfügbaren Paging-Optionen in der System-Property cmweb-server-adapter, searchPageSizeOptions festlegen. Für Vorgänge enthält die Ergebnistabelle standardmäßig den zugewiesenen Bearbeiter, den Hauptkontakt, den Vorgangsnamen und das Vorgangsthema. Für Kontakte und Ressourcen enthält sie den Anzeigenamen. Sie können weitere Spalten rechts neben den Standardspalten hinzufügen, indem Sie die gewünschte Position in der Einstellung Spaltenposition in Detailsuchergebnissen des Datenfeldes eingeben.

    info

    Die Benutzerpräferenzen überschreiben die Standardkonfiguration, d. h. sobald ein Benutzer die angezeigten Spalten, ihre Reihenfolge oder Sortierung im Web Client ändert, bleibt diese Konfiguration für diesen bestimmten Benutzer erhalten.

Betrieb des Indexers

Indexer-Verzeichnisstruktur

Das Datenverzeichnis wird in der System-Property cmas-core-shared, data.directory festgelegt.

Überwachung des Indexers

Der Status des Indexers wird auf der Seite Index der Web Admin Suite angezeigt. Alternativ können Sie auch die System-Property cmas-core-index-common, index.status überprüfen. Die folgenden Status können auftreten:

GRÜN: Der Index ist in Ordnung. Es sind keine Maßnahmen erforderlich.

  • GELB: Es gibt lösbare Probleme mit dem Index, entweder ausstehende administrative Änderungen oder ausstehende Retry-Aufgaben. Sie müssen die erforderliche Aktion in der Web Admin Suite durchführen.
  • ROT: Es liegen Fehler vor. Sie müssen den Index in der Web Admin Suite neu aufbauen.

Außerdem müssen Sie das Dateisystem, auf dem sich der Index befindet, überwachen, um sicherzustellen, dass genügend Speicherplatz und RAM verfügbar sind, dass das Dateisystem verfügbar ist (wenn es auf einem anderen Server gemountet ist) und dass die Synchronisierung zwischen dem Master- und den Slave-Knoten korrekt funktioniert (wenn Sie eine Cluster-Umgebung haben).

Die folgenden Probleme können darauf hinweisen, dass der Indexer nicht einwandfrei funktioniert:

  • Die Suche im Web Client funktioniert nicht richtig. Neu erstellte Objekte werden nicht gefunden oder die Suche funktioniert überhaupt nicht.
  • Eingehende E-Mails werden nicht verarbeitet (die Verarbeitung erfordert eine Suche nach Vorgang und Kontakt).

Sichern und Wiederherstellen des Index

Alle ConSol CM-Indizes werden im Dateisystem gespeichert.

Bitte gehen Sie wie folgt vor, um ein Index-Backup zu erstellen, um inkonsistente Zustände zu vermeiden:

  1. Sichern Sie den Index mit dem folgenden HTTP-Request. Ersetzen Sie die Variablen durch die richtigen Werte für Ihr System (URL, Name und Passwort des Admin-Benutzers):
wget http://${indexing.master.host:port}/index/snapshot --user ${admin} --password ${password} -Obackup.jar

Dadurch wird der vollständige Index in eine Datei backup.jar heruntergeladen. Der erhaltene vollständige Snapshot hat den Zeitstempel des Zeitpunkts, an dem der Befehl ausgeführt wurde.

Bitte führen Sie die folgenden Schritte aus, um den Index wiederherzustellen:

  1. Stoppen Sie den ConSol CM-Server.
  2. Bereinigen Sie die Verzeichnisse innerhalb des Indexordners.
  3. Entpacken Sie die Datei backup.jar in den Indexordner.
  4. Starten Sie den ConSol CM-Server neu.
  5. Bauen Sie den Index für den fehlenden Zeitraum (zwischen der Erstellung des Backups und der Wiederherstellung) mithilfe der Web Admin Suite neu auf.

Feinabstimmung des Index

Wenn die Suche langsam ist oder Sie Verzögerungen feststellen, können Sie die Anzahl der Indexer-Threads in der System-Property cmas-core-index-common, index.task.worker.threads erhöhen. Der Standardwert ist 1. Setzen Sie den Wert nicht auf eine höhere Zahl als die Anzahl der CPU-Kerne des Rechners.

Technischer Hintergrund des Index

Welche Änderungen machen Indexaktualisierungen erforderlich?

Es gibt zwei Arten von Änderungen, die für den Index relevant sind:

  • Operative Änderungen: Das sind Änderungen an den Laufzeitdaten. Der Index wird automatisch aktualisiert, wenn diese Änderungen ausgeführt werden.

    • Werte von Datenfeldern: Werte von Feldern (Vorgangs-, Kontakt- und Ressourcenfelder), die über die Einstellung Für Suche indiziert für die Indizierung konfiguriert sind
    • Benutzerdaten: E-Mail, Vor- und Nachname
    • Vorgangsdaten: Attachments (sofern nicht anders konfiguriert), Erstellungsdatum, Beteiligte, Protokoll, Name, Queue, Beteiligte, Thema, Sicht
  • Administrative Änderungen: Dies sind Änderungen an bestimmten Konfigurationsdaten:

    • Bereiche
    • Queues
    • Listenwerte
    • Benutzerfunktionen
    • Unterstützte Sprachen
    • Rollen
    • Einstellung Für Suche indiziert an Vorgangs-, Kontakt- und Ressourcenfeldern

    Die Verarbeitung von administrativen Änderungen hängt von der Einstellung Alle administrativen Änderungen werden automatisch auf den Index angewendet ab:

    • Wenn die Checkbox ausgewählt sind, werden die Änderungen automatisch verarbeitet.
    • Wenn die Checkbox nicht ausgewählt ist, werden die Änderungen für eine nachgelagerte Verarbeitung in der Datenbank gespeichert. Die Verarbeitung kann über den Button Administrative Änderungen anwenden gestartet werden.

Wie wirken sich Änderungen auf die Performance aus?

Wie sich Indexänderungen auf die Performance auswirken, hängt von der Anzahl der Objekte ab, die neu indiziert werden müssen.

ÄnderungErfordert Neuindizierung vonAuswirkung auf die Performance
Systemsprache hinzufügen oder löschenAlle Vorgänge, Kontakte und RessourcenKritisch
Internen oder lokalisierten Namen einer Queue ändernAlle Vorgänge, die sich in dieser Queue befindenHoch
Wert der Einstellung Für Suche indiziert für ein Datenfeld hinzufügen, entfernen oder ändernAlle Vorgänge, Kontakte oder Ressourcen, bei denen dieses Feld gesetzt istHoch
Internen Namen, lokalisierten Namen oder Reihenfolge eines Listenwertes ändernAlle Vorgänge, Kontakte oder Ressourcen, bei denen der geänderte Listenwert gesetzt istHoch
Einstellung Darstellung von Rich-Text im Ansichtsmodus einem indizierten Datenfeld des Typs Text (lang) hinzufügen oder von ihm entfernenAlle Vorgänge, Kontakte oder Ressourcen, bei denen dieses Feld gesetzt istMittel
Internen Namen, lokalisierten Namen oder Reihenfolge eines Bereichs ändernAlle Vorgänge, die sich aktuell in dem geänderten Bereich befindenMittel
Einstellung Telefonnummer eines Kontaktfeldes hinzufügen oder entfernenAlle Kontakte, die dieses Datenfeld habenMittel
Telefonnummernkonfiguration einer Kundengruppe ändernAlle Kontakte der Kundengruppe, die ein Telefonnummernfeld habenMittel
Internen oder lokalisierten Namen einer Benutzerfunktion ändernAlle Vorgänge, die wenigstens einen Beteiligten mit dieser Funktion habenNiedrig
Login, Vornamen oder Nachnamen eines Benutzers ändernAlle Vorgänge, denen der Benutzer zugewiesen ist (als primärer oder referenzierter Benutzer)Niedrig
Internen oder lokalisierten Namen eines Ressourcentyps oder einer Ressourcenkategorie ändernAlle Ressourcen dieses Ressourcentyps / alle Ressourcen, die zu dieser Ressourcenkategorie gehörenNiedrig

Wie werden Indexaktualisierungen verarbeitet?

Es sind zwei Services an Indexaktualisierungen beteiligt:

  • Index changes notifier: Speichert die Elemente, die eine Indexaktualisierung erforderlich machen, in der Tabelle cmas_index_update_serialized.

  • Index changes receiver: Prüft, ob die Tabelle cmas_index_update_serialized neue Einträge enthält und erstellt Indexaufgaben in den Tabellen cmas_index_update_task und cmas_index_update_part. Administrative Aufgaben werden direkt in der Datenbanktabelle cmas_index_administrative_task erstellt. Der Indizierungsserver führt dann die Aufgaben aus diesen Tabellen aus und aktualisiert die Lucene-Dateien entsprechend. Wenn die Ausführung einer Aktualisierungsaufgabe fehlschlägt, wird eine neue Aktualisierungsaufgabe des Typs Retry-Aufgabe angelegt und der Indexstatus wird auf GELB gesetzt. Sie müssen die Aufgabe dann über den Button Retry-Aufgaben ausführen ausführen.

    Hinweis zu Cluster-Systemen

    Auf Cluster-Systemen wird der Index auf dem Master-Indizierungsserver erstellt. Die Slave-Indizierungsserver laden die Indexdateien vom Master-Indizierungsserver herunter.

Anhalten von Services

Stoppen Sie den Service Index changes notifier nicht. Wenn der Service angehalten ist und eine Änderung erfolgt, die eine Indexaktualisierung erforderlich macht, wird der Indexstatus auf ROT gesetzt und es ist eine Neuerstellung erforderlich. Sie können Index changes receiver anhalten. Nach dem Neustart ruft der Service die fehlenden Änderungen aus der entsprechenden Tabelle ab.