Komplexe Suche

Dynamische Platzhalter

An allen Stellen im Monitor können in Filtern/Suchen folgende Platzhalter verwendet werden. Diese werden während der Abfrage der Daten entsprechend ersetzt.

Platzhalter Beispiel-Ersetzung Beschreibung

#user.loginName#

max.mustermann

Anmeldename des aktuellen Benutzers.
Dies kann z.B. genutzt werden, um auf Daten des Nutzers zu filtern.

Volltextsuche im Monitor

Die Volltextsuche stellt die zentrale Suchfunktionalität über alle Felder des aktuell angewählten Monitors bereit. In das Eingabefeld kann man nicht nur einzelne Suchbegriffe eingeben, sondern mittels Operatoren komplexe Suchen zusammenstellen.

Suchfeld der Volltextsuche

Dem Anwender steht im Informations- und Funktionsbereich ein Fenster zur Volltextsuche bereit. Die Volltextsuche erfolgt über alle Monitoring-Daten hinweg. Sie funktioniert spaltenübergreifend und kann optional inkl. aller Prozessdetails sowie referenzierten Nachrichten voreingestellt werden.

Um Daten zu finden, gibt der Anwender den Suchbegriff in das Feld der Volltextsuche in der Funktionsleiste ein. Mehrere Suchbegriffe können über Operatoren miteinander verknüpft werden.

Operatoren für mehrere Suchbegriffe

Wird kein Operator angegeben, werden die Begriffe mit UND verknüpft.

Verknüpfung von Suchbegriffen

Wenn man keine Anführungsstriche (") verwendet, dann grenzt das Leerzeichen zwei Wörter syntaktisch voneinander ab und betrachtet diese getrennt. In diesem Fall wird das logische UND (AND) als Verknüpfungsoperator verwendet. Will man mit dem logischen ODER verknüpfen, muss man explizit OR angeben.

Beispiel Erklärung

blaues auto

Sucht nach Dokumenten, die in irgendeinem Feld "auto" und in einem (eventuell anderen Feld) "blaues" enthalten.

blaues OR auto

Sucht nach Dokumenten, die in irgendeinem Feld "auto" oder "blaues" enthalten.

auto AND (blau OR gelb)

Für komplexere logische Verknüpfungen kann man Klammern verwenden.
Sucht nach Dokumenten mit dem Inhalt "auto" und dem Inhalt blau oder gelb.

Eingrenzung des Suchbereiches

Wenn man die Suche auf ein bestimmtes Feld eingrenzen möchte, dann kann man dies tun, indem man den Feldnamen (Spaltennamen) mit einem Doppelpunkt getrennt voranstellt.

Beispiel Erklärung

FAHRZEUGTYP:auto FARBE:blau

Sucht nach Dokumenten in denen im Feld FAHRZEUGTYP der Wert "auto" vorkommt und im Feld FARBE der Wert "blau".

Ausschließen von Suchbegriffen

Man kann auch die Suche bzw. Teile der Suche negieren/ausschließen.

Beispiel Erklärung

FAHRZEUGTYP:auto -FARBE:blau

Sucht nach Dokumenten bei denen im Feld FAHRZEUGTYP der Wert "auto" vorkommt und im Feld FARBE nicht der Wert "blau".

Suche nach (nicht) existierenden Feldern

Möchte man Dokumente finden, in denen bestimmte Felder vorhanden sind oder explizit fehlen, kann man mit den Schlüsselwörtern _missing_ und _exists_ arbeiten.

Beispiel Erklärung

_exists_:KAEUFER AND _missing_:SONDERAUSSTATTUNG

Sucht nach Dokumenten mit dem Feld KAEUFER, egal welchen Inhalts, ohne dem Feld SONDERAUSSTATTUNG.

Wildcard-/Platzhaltersuche

Für Felder, die Text enthalten, kann man auch Platzhalter (Wildcards) verwenden. Es gibt zwei verschiedene Platzhalter.
Das ? steht für ein beliebiges Zeichen (nur ein Zeichen) und * steht für eine unbestimmte Anzahl von beliebigen Zeichen.

Beispiel Erklärung

FARBE:gr*

Sucht nach Farben, die mit "gr" beginnen, wie z.B. "grün" und "grau" und "graublau".

FARBE:gr??

Diese Suche würde auch "grün" und "grau" finden, jedoch nicht "graublau".

Suche nach ähnlichen Wörtern / Fuzzy Suche

Für Felder mit Texten gibt es die Möglichkeit, nach "ähnlichen" Wörtern zu suchen. Damit lassen sich z.B. Wörter finden, in denen Tippfehler vorliegen.

Beispiel Erklärung

FARBE:blau~

Findet auch die Farbe "blua".
Dabei wird die Damerau-Levenshtein-Distanz verwendet, um alle Begriffe mit maximal zwei Änderungen zu finden, wobei eine Änderung das Einfügen, Löschen oder Ersetzen eines einzelnen Zeichens oder die Transponierung von zwei benachbarten Zeichen ist.

FARBE:blau~3

Verändert die Distanz hinter dem Operator.

Bereichssuche

Intervalle können für Datums- oder Zahlenfelder angegeben werden.
Inklusive Intervalle (welche die Grenzen beinhalten) werden mit eckigen Klammern [min TO max] und exklusive Intervalle (welche die Grenzen nicht beinhalten) mit geschweiften Klammern {min TO max} angegeben.
Geschweifte und eckige Klammern können kombiniert werden.

Alternativ können auch die Operatoren <, >, <= und >= verwendet werden, wenn es eine Einschränkung nur von einer Seite gibt.

Beispiel Erklärung

DATUM:[2012-01-01 TO 2012-12-31]

Alle Tage im Jahr 2012

ANZAHL:[1 TO 5]

Zahlen 1 bis 5

ANZAHL:[10 TO *]

Zahlen von 10 aufwärts

DATUM:{* TO 2012-01-01}

Termine vor 2012

ANZAHL:[1 TO 5}

Zahlen von 1 bis 4

ALTER:>10
ALTER:>=10
ALTER:<10
ALTER:⇐10

Bereiche mit einer Seite ohne Begrenzung

Sonderzeichen im Suchbegriff

Sollten spezielle Sonderzeichen im gesuchten Begriff enthalten sein, die für die Suche normalerweise einen Operator darstellen, dann müssen diese mit einem \ maskiert (escaped) werden. Dieser maskierte Text wird dann nicht als Operator, sondern als normaler Text behandelt.

Beispiel Erklärung

"wie alt bist du\?"

Verwendet den gesamten Satz als Suchbegriff und blendet ? als Operator aus.

Limitierung bei komplexen Suchanfragen

Standardmäßig ist bei OpenSearch die Anzahl der verketteten Suchterme auf 1024 begrenzt. Eine Textsuche, die sich nicht auf ein bestimmtes Feld bezieht, erzeugt intern einen Suchterm pro Feld. Bei Indizes mit vielen Feldern und mehreren logischen Verknüpfungen (AND, OR) kann die Grenze von 1024 Termen daher schnell erreicht werden. In diesem Fall erscheint die Fehlermeldung: too_many_nested_clauses.

Tritt dieser Fehler auf, sollte die Suchanfrage durch eine gezielte Feldsuche (Spaltensuche) optimiert werden.

Falls es zwingend erforderlich ist, komplexere Suchanfragen zu verwenden, kann das Limit in der Konfigurationsdatei OPENSEARCH_CONFIG_VERZEICHNIS/opensearch.yml angepasst werden, indem folgende Zeile ergänzt wird:

indices.query.bool.max_clause_count: 2048

Der Wert (hier 2048) kann je nach Bedarf angepasst werden. Nach der Änderung muss OpenSearch neu gestartet werden.

Die Erhöhung dieses Limits wird nicht empfohlen, da sehr komplexe Suchanfragen die Systemperformance erheblich beeinträchtigen können.

Übersicht Suchparameter/Operatoren

Operator Funktion Beispiel

"

führt mehrere Wörter als Phrase zusammen

"blaues auto"

()

gruppiert Operatoren, um diese mit anderen Suchen via AND/OR zu verknüpfen

auto AND (FARBE:blau OR FARBE:gelb)

*

signalisiert eine Teilstring-Suche mit beliebig vielen variablen Zeichen

FARBE:bl*

?

signalisiert eine Teilstring-Suche mit einem variablen Zeichen

FARBE:bl??

~

Fuzzy Suche

FARBE:blau~

\

Behandelt reservierte Operatoren als normalen Text.

"wie alt bist du\?"

AND

Boolesche UND Funktion

EinText AND ZweiterText

OR

Boolesche ODER Funktion

EinText OR ZweiterText

-

exkludiert Phrase

EinText -ZweiterText

Spalte:

Spaltensuche

Spalte1:EinText

_missing_

Einträge ohne Wert in Spalte1

_missing_:Spalte1

_exists_

Einträge mit Wert in Spalte1

_exists_:Spalte1

[min TO max]

Intervallsuche mit inklusiven Grenzen für Zahlen- und Datumsfelder

id:[1 TO 10]

{min TO max}

Intervallsuche mit exklusiven Grenzen für Zahlen- und Datumsfelder

Datum:{* TO 2012-01-01}

<,>,<=,>=

Filteroperatoren für numerische Vergleiche: kleiner als, größer als, kleiner oder gleich, größer oder gleich

Kosten:>500


Keywords: