Mit einem Suchausdruck (der im Folgenden auch "Suchanfrage" genannt wird) werden die Kriterien festgelegt, nach denen der Search Server eine Suche durchführt. Die Bestandteile eines Suchausdrucks sind Suchwörter, Operatoren und Modifikatoren:
Operatoren und Modifikatoren sind Schlüsselwörter, die man in Suchausdrücken verwenden kann, um die Beziehung zwischen Suchwörtern festzulegen. Nur solche Dokumente, in denen die Suchwörter die angegebene Beziehung zueinander haben, können als Treffer im Suchergebnis erscheinen. So wird mit dem Suchausdruck
pflaumen <#AND> <#NOT> bananen
nach Dokumenten gesucht, die das Suchwort pflaumen
, nicht
jedoch das Suchwort bananen
enthalten. Schlüsselwörter
sollten grundsätzlich in spitze Klammern eingeschlossen werden. Wenn Sie
die Search Engine mit deutscher Ländereinstellung betreiben,
muss jedem Schlüsselwort ein Doppelkreuz vorangestellt werden. Bei der englischen Ländereinstellung ist dies nicht
erforderlich.
Bei Operator- und Modifikatornamen unterscheidet die Search Engine nicht zwischen Groß- und Kleinschreibung. Suchwörter werden im Folgenden auch "Suchbegriffe" genannt.
Die Search Engine ist mit drei sogenannten Parsern ausgestattet, die die Suchanfragen der Benutzer analysieren und entsprechende Suchaktionen ausführen. Die Parser unterscheiden sich in der Art und Weise, wie sie Suchausdrücke analysieren und interpretieren. Jeder der drei Parser ist auf konkrete Anwendungssituationen zugeschnitten. Man kann den zu verwendenden Parser in XML-Suchanfrage-Requests an den Search Engine Server angeben und folglich je nach Benutzer-Zielgruppe in seinen Suchformularen eine mehr oder weniger umfangreiche Suchsyntax bereitstellen.
Ein Parser sollte nicht mit der von ihm unterstützten Suchsyntax gleichgesetzt werden. So kann man beispielsweise im einfachen Parser sowohl Anfragen in einfacher Syntax als auch in expliziter Syntax stellen. Ferner sind in expliziter Syntax Anfragen in mehreren Notationen erlaubt.
Der einfache Parser ist universell, weil er sowohl Anfragen in einfacher Syntax als auch in expliziter Syntax zulässt. Der Parser wird bevorzugt in Umgebungen eingesetzt, in denen Benutzer mit möglichst geringem Aufwand möglichst gute Suchergebnisse erhalten sollen.
Der einfache Parser wandelt einfache Anfragen in explizite Anfragen um,
wobei er sie um sinnvolle Operatoren ergänzt. Jedes Suchwort wird mit dem
Modifikator MANY
und dem Operator STEM
versehen.
MANY
sorgt dafür, dass ein Dokument umso höher
gewichtet wird, je größer die Dichte ist, mit der das Suchwort im
Dokument vorkommt. Die Dichte ist ein relatives Maß, das das
Verhältnis der Vorkommenshäufigkeit der Suchbegriffe zur Textmenge
des Dokuments angibt.STEM
bewirkt, dass die Suche auch Wörter umfasst,
die abgeleitete Varianten des Suchwortes sind.Gibt ein Benutzer durch Kommas getrennte Suchwörter ein, so werden die
Wörter mit dem ACCRUE
-Operator kombiniert. Dieser Operator
gewichtet Dokumente umso höher, je größer die absolute
Vorkommenshäufigkeit der Suchwörter in den Dokumenten ist. Eine Anfrage
wie
apfel, banane, orange
wird vom einfachen Parser demnach folgendermaßen umgewandelt:
<#accrue>(<#many><#stem>apfel, <#many><#stem>banane, <#many><#stem>orange)
Der explizite Parser gestattet nur Suchanfragen in expliziter Syntax. Er ist für Umgebungen konzipiert, in denen Suchanfragen programmgesteuert erzeugt werden. Die Benutzer wählen in solchen Umgebungen die auf die eingegebenen Suchwörter anzuwendenden Operationen beispielsweise mit Auswahlkästchen aus, anstatt eine Suchanfrage mit Operatoren zu versehen.
Suchanfragen in expliziter Syntax werden in Präfix- oder Infix-Notation gestellt:
<#OR> (a, <#AND> (b, c))
eine Suchanfrage nach Dokumenten, die
sowohl die Suchwörter b
und c
oder das
Suchwort a
enthalten.AND
und OR
,
von denen OR
den geringeren Vorrang hat. Dokumente
werden also erst auf Suchbegriffe untersucht, die mit
AND
verknüpft sind, bevor sie auf OR
-verknüpfte Suchbegriffe getestet werden. Beispiel: a <#AND> b <#OR> c
sucht nach Dokumenten, die sowohl
a
und b
oder c
enthalten.Hier ein Beispiel für Präfix-Notation:
<#paragraph>("fahrzeug", <#sentence>("sicherheit", <#phrase>("kein", "kompromiss")))
In Infix-Notation wird diese Anfrage folgendermaßen gestellt:
"fahrzeug" <#paragraph> "sicherheit" <#sentence> "kein" <#phrase> "kompromiss"
Literaler Text
Wenn Sie einzelne Wörter in doppelte Anführungszeichen einschließen, interpretiert der explizite Parser die Wörter, literal, d. h. wörtlich. Dadurch, dass Sie beispielsweise das Wort "film" ausdrücklich in doppelte Anführungszeichen einschließen, werden Wörter wie "filmt", "gefilmt" oder "filmen" bei der Suche nicht berücksichtigt:
"film"
Die Anführungszeichen sind ein syntaktisches Element der expliziten Syntax, die im einfachen und im expliziten Parser verwendet werden kann. Das folgende Beispiel ermittelt Dokumente, die die Wortfolge "Pharmazeutische Betriebe" und das Wort "Aktien" literal enthalten:
<#AND> ("Pharmazeutische Betriebe
", "Aktien
")
Im folgenden Beispiel wird nach Dokumenten gesucht, die die Wortfolge "schwarz und weiß" enthält:
<#PHRASE> (schwarz "und" weiß)
Das Wort "und" muss von doppelten Anführungszeichen umgeben sein, weil es andernfalls in einer Umgebung mit deutscher Ländereinstellung als Operator interpretiert würde.
Wenn Sie den Namen eines Themas (topic
) in doppelte
Anführungszeichen einschließen, so interpretiert ihn die Search Engine
wörtlich und nicht als Themennamen. Auf diese Weise können Sie nach
Wörtern suchen, die gleichzeitig Themennamen sind.
Der Freitext-Parser erlaubt es, Suchanfragen zu stellen, die Sätze oder Teilsätze sind. Er behandelt sämtlichen Text als Folge von Suchwörtern. Operatoren werden folglich nicht erkannt.
Der Freitext-Parser generiert aus einer Suchanfrage eine Anfrage in expliziter Syntax, indem er unwichtige Wörter wie Artikel, Präpositionen und Konjunktionen aus der Anfrage entfernt und Suchwörter zu Wortfolgen verbindet. Der Parser ist dafür vorgesehen, dass Benutzer Ihre Anfragen in Form kurzer Fragen stellen können.
Mit dem FREETEXT
-Operator kann die Freitext-Funktionalität
auch im einfachen oder expliziten Parser verwendet werden.