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 Datenverzeichnissen gespeichert.
Konzepte, Begriffe und Definitionen
Konzept |
Andere Begriffe |
Definition |
---|---|---|
Indexer |
|
ConSol CM-Komponente zur Indexverwaltung |
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 |
Zweck und Verwendung
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 Datenfelder.
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.
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.
- GRÜN
- 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.
- Offene Vorgänge nach Queue-Priorisierung zuerst indizieren: Indiziert zuerst die offenen Vorgänge nach Queue-Priorisierung. Danach werden die geschlossenen Vorgänge indiziert.
- 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.
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.
- Vorgänge
- 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.
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.
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.
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:- 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
Der Index wird automatisch aktualisiert, wenn diese Änderungen ausgeführt werden.
-
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.
Änderung |
Erfordert Neuindizierung von |
Auswirkung auf die Performance |
---|---|---|
Systemsprache hinzufügen oder löschen |
Alle Vorgänge, Kontakte und Ressourcen |
Kritisch |
Internen oder lokalisierten Namen einer Queue ändern |
Alle Vorgänge, die sich in dieser Queue befinden |
Hoch |
Wert der Einstellung Für Suche indiziert für ein Datenfeld hinzufügen, entfernen oder ändern |
Alle Vorgänge, Kontakte oder Ressourcen, bei denen dieses Feld gesetzt ist |
Hoch |
Internen Namen, lokalisierten Namen oder Reihenfolge eines Listenwertes ändern |
Alle Vorgänge, Kontakte oder Ressourcen, bei denen der geänderte Listenwert gesetzt ist |
Hoch |
Einstellung Darstellung von Rich-Text im Ansichtsmodus einem indizierten Datenfeld des Typs Text (lang) hinzufügen oder von ihm entfernen |
Alle Vorgänge, Kontakte oder Ressourcen, bei denen dieses Feld gesetzt ist |
Mittel |
Internen Namen, lokalisierten Namen oder Reihenfolge eines Bereichs ändern |
Alle Vorgänge, die sich aktuell in dem geänderten Bereich befinden |
Mittel |
Einstellung Telefonnummer eines Kontaktfeldes hinzufügen oder entfernen |
Alle Kontakte, die dieses Datenfeld haben |
Mittel |
Telefonnummernkonfiguration einer Kundengruppe ändern |
Alle Kontakte der Kundengruppe, die ein Telefonnummernfeld haben |
Mittel |
Internen oder lokalisierten Namen einer Benutzerfunktion ändern |
Alle Vorgänge, die wenigstens einen Beteiligten mit dieser Funktion haben |
Niedrig |
Login, Vornamen oder Nachnamen eines Benutzers ändern |
Alle Vorgänge, denen der Benutzer zugewiesen ist (als primärer oder referenzierter Benutzer) |
Niedrig |
Internen oder lokalisierten Namen eines Ressourcentyps oder einer Ressourcenkategorie ändern |
Alle Ressourcen dieses Ressourcentyps / alle Ressourcen, die zu dieser Ressourcenkategorie gehören |
Niedrig |
Wie werden Indexaktualisierungen verarbeitet?
Zwei Services, siehe Services, sind 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.Auf Cluster-Systemen wird der Index auf dem Master-Indizierungsserver erstellt. Die Slave-Indizierungsserver laden die Indexdateien vom Master-Indizierungsserver herunter.
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.