Wildcard-Suche
Einleitung
Jadice bietet eine Suche über Dokumente mit textuellen Inhalten an. Diese Suche bietet mehrere Such-Optionen. Eine davon ist die Wildcard-Suche. Mit ihrer Hilfe lassen sich Suchen durchführen, bei denen die genaue Schreibweise des Suchbegriffes nicht bekannt ist oder Teile des Suchbegriffes variabel sind. Somit kann die Wildcard-Suche beispielsweise eingesetzt werden, wenn der Anwender ein Wort suchen möchte, welches verschiedene Schreibweisen hat. Mit Hilfe der Wildcard-Symbole kann somit mit einer Suche sowohl "bekanntgeben" als auch "bekannt geben" gefunden werden.
Verhalten der Wildcard-Suche
Die Wildcard-Suche bietet eigene Wildcard-Suchparameter an, das * und das ?. Sie erlauben folgendes Verhalten der Wildcard-Suche:
- Mit dem Wildcard-Suchparameter * können 0 bis beliebig viele Zeichen gesucht werden. Das ? sucht nach genau einem Zeichen. Als Zeichen werden Buchstaben, Zahlen, Sonderzeichen und Weißzeichen angesehen.
- Wenn nach den Zeichen * oder ? gesucht werden soll, müssen sie im Suchstring escaped werden. Dazu wird ein Backslash \ direkt vor das entsprechende Zeichen geschrieben.
Beispiel: Mit dem Suchstring "te\*st" würde "te*st" gefunden werden, "test" dagegen nicht. - Es können beliebig viele Wildcard-Symbole (auch in direkter Reihenfolge) in einer Suche eingesetzt werden. Jedes Einzelne verhält sich dabei wie oben beschrieben.
- Unter Einsatz der Wildcard-Suche ist es möglich Matches zu finden, die sich über mehrere Zeilen erstrecken. Matches über mehrere Seiten werden nicht gefunden.
- Bei der Suche wird der erste mögliche Match gefunden.
Beispiel: Im Text "Ich teste hier" wird nach "t*e" gesucht und nur Wildcard ist ausgewählt.
Das Erste nach dem t folgende e ist das e direkt nach dem t. Daher ist der Match hier "te", auch wenn am Ende von "teste" und in "hier" jeweils ein weiteres e vorkommt. - Nach einem gefundenen Match wird der nächste Treffer ermittelt.
Corner-Cases
Bei der Wildcard-Suche ergeben sich mehrere Corner-Cases. Eine Übersicht bietet die folgende Tabelle:
Fall | notwendige Such-Optionen | Verhalten | Anmerkungen |
---|---|---|---|
*, ?, ?*, *?, **, ??, ?*?, *?* | Wildcard | Es wird keine Suche angeboten und der Suchbutton ist disabled. | Hier ist keine Suche sinnvoll, da andernfalls der komplette Text ein Treffer wäre. |
*abc | Wildcard | Das * wird ignoriert und es wird nur nach abc gesucht. | Das * wird ignoriert, da ansonsten der komplette Text vom Anfang der Seite bis zum gefundenen Suchstring ein Treffer wäre. Bei mehreren Treffern auf einer Seite würde der nächste Treffer jeweils ab dem Vorherigen beginnen. |
*abc | Wildcard Nur ganze Wörter | Das * steht für 0 bis n Zeichen bis zum Wortanfang. | |
abc* | Wildcard | Das * wird ignoriert und es wird nur nach abc gesucht. | Das * wird ignoriert, da ansonsten der komplette Text ab dem gefundenen Suchstring bis zum Ende der Seite ein Treffer wäre. |
abc* | Wildcard Nur ganze Wörter | Das * steht für 0 bis n Zeichen bis zum Wortende. | |
?abc | Wildcard | Es wird abc inklusive dem Zeichen davor gefunden. | |
?abc | Wildcard Nur ganze Wörter | Es werden Wörter gefunden, die mit abc enden und nur ein Zeichen davor haben. | |
abc? | Wildcard | Es wird abc inklusive dem Zeichen danach gefunden. | |
abc? | Wildcard Nur ganze Wörter | Es werden Wörter gefunden, die mit abc beginnen und nur ein Zeichen danach haben. | |
*?abc | Wildcard | Es wird abc mit einem Zeichen davor gefunden. | *? wird hier wie nur ein ? behandelt, da ansonsten der komplette Text vom Anfang der Seite bis zum gefundenen Suchstring ein Treffer wäre. Bei mehreren Treffern auf einer Seite würde der nächste Treffer jeweils ab dem Vorherigen beginnen. |
*?abc | Wildcard Nur ganze Wörter | Es werden Wörter gefunden, die mit abc enden und mindestens ein Zeichen davor haben. | |
abc?* | Wildcard | Es wird abc mit einem Zeichen danach gefunden. | ?* wird hier wie nur ein ? behandelt, da ansonsten der komplette Text ab dem gefundenen Suchstring bis zum Ende der Seite ein Treffer wäre. |
abc?* | Wildcard Nur ganze Wörter | Es werden Wörter gefunden, die mit abc beginnen und mindestens ein Zeichen danach haben. | |
?*abc | Wildcard | Es wird abc mit einem Zeichen davor gefunden. | ?* wird hier wie nur ein ? behandelt, da ansonsten der komplette Text vom Anfang der Seite bis zum gefundenen Suchstring ein Treffer wäre. Bei mehreren Treffern auf einer Seite würde der nächste Treffer jeweils ab dem Vorherigen beginnen. |
?*abc | Wildcard Nur ganze Wörter | Es werden Wörter gefunden, die mit abc enden und mindestens ein Zeichen davor haben. | |
abc*? | Wildcard | Es wird abc mit einem Zeichen danach gefunden. | *? wird hier wie nur ein ? behandelt, da ansonsten der komplette Text ab dem gefundenen Suchstring bis zum Ende der Seite ein Treffer wäre. |
abc*? | Wildcard Nur ganze Wörter | Es werden Wörter gefunden, die mit abc beginnen und mindestens ein Zeichen danach haben. | |
ab?*cd | Wildcard | Das ?* steht für 1 bis beliebig viele Zeichen. | |
ab*?cd | Wildcard | Das *? steht für 1 bis beliebig viele Zeichen. | |
a*b | Wildcard | Der Match erstreckt sich vom a bis zum ersten danach auf der Seite gefundenen b. | |
a*b | Wildcard Nur ganze Wörter | Es werden Wörter gefunden, die mit a beginnen und mit b enden. |
Beispiele
Zur besseren Veranschaulichung der Wildcard-Suche sind im Folgenden Suchbeispiele aufgeführt. Zur leichteren Erkennbarkeit sind die Suchergebnisse jeweils farbig markiert:
Suchstring | Such-Optionen | Treffer | Suchtext |
---|---|---|---|
"lo*m" | Wildcard | "Lorem", "lor sit am", "lore m", "lores et ea rebum", "Lorem" und "lor sit am" | "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet." |
"lo*m" | Wildcard Nur ganze Wörter | "Lorem" und "Lorem" | "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet." |
"*ea" | Wildcard | "ea" und "ea" | "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet." |
"?et" | Wildcard | "met", "set", " et", " et", " et", " et", "tet" und "met" | "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet." |
"?*" | Wildcard | keine Treffer | "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet." |
"s?*t" | Wildcard | "sum dolor sit", "set", "sadipscing elit", "sed diam nonumy eirmod t", "sed diam volupt", "s et", "sam et", "sto duo dolores et", "Stet", "sd gubergren, no sea t", "sanct", "s est" und "sum dolor sit" | "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet." |