Der Operator LIKE
ist in erster Linie für den Einsatz in
der Applikationsentwicklung vorgesehen. Er sucht nach Dokumenten, die
einem oder mehreren vorgegebenen Dokumenten oder Texpassagen ähnlich sind.
Die Suchmaschine analysiert den vorgegebenen Text, um die für die Suche
wichtigsten Begriffe ausfindig zu machen. Wenn mehrere Texte vorgegeben
werden, geht die Suchmaschine davon aus, dass alle diese Texte das gleiche
Thema haben und wählt aus allen Texte Begriffe aus, die textübergreifend
relevant sind. Die ermittelten Dokumente werden nach Relevanz
gewichtet.
Der LIKE
-Operator hat genau einen Operanden, die
sogenannte QBE-Spezifikation (QBE = engl. "query-by-example").
Die QBE-Spezifikation kann entweder der wörtliche Text des angegebenen
Beispiels oder die Spezifikation eines oder mehrerer ganzer Dokumente und
Textpassagen sein, die als positive und negative Beispiele verwendet
werden sollen.
Bitte beachten Sie folgendes: Enthält eine Suchanfrage oder ein als
Beispiel angegebenes Dokument nur Stoppwörter, so ermittelt eine Anfrage
mit dem LIKE
-Operator keine Dokumente, d. h. das
Suchergebnis enthält in diesem Fall keine Treffer.
Syntax
Dokumente werden als Textreferenzen spezifiziert, die in geschweifte Klammern eingeschlossen sind. Referenzen werden mit der folgenden Syntax angegeben:
{[name =]type:value [name=]type:value ...}
Die Variablen haben die folgende Bedeutung:
name
kann entweder posex
(positives Beispiel), oder negex
(negatives Beispiel) sein.
Ein negatives Beispiel reduziert das Gewicht von Begriffen, wenn diese
in einem positiven Beispiel auftreten. Wenn Begriffe in einem
negativen Beispiel nicht im positiven Beispiel vorkommen, so bleibt
das negative Beispiel wirkungslos. (Ein negatives Beispiel hat für
sich allein genommen folglich keinen Sinn). Die Variable
name
ist optional. Wird sie nicht angegeben, so wird
name
intern auf posex
gesetzt. In diesem
Fall darf auch das Gleichheitszeichen nicht angegeben werden.
type
kann einer der folgenden Werte sein:
VdkVgwKey
, um ein Dokument über
seine externe ID zu referenzieren (d. h. die
Versions-ID im Content Manager oder die Datei-ID in der
Template Engine).
Text
, um den Text direkt anzugeben.value
ist eine Referenz auf ein
Textfragment, das als positives bzw. negatives Beispiel dient. Der
Wert von value
hängt vom Wert von
type
ab:
VdkVgwKey
: die Dokument-ID (d. h.
Versions- oder Datei-ID)Text
: Literaler Text.Wenn type
nicht angegeben wurde, wird der Wert
value
folgendermaßen interpretiert:
VdkVgwKey
in allen anderen Fällen.Der LIKE
-Operator kann nach den gleichen Regeln mit
anderen Operatoren kombiniert werden wie der Operator ACCRUE
.
Die folgenden Beispiele illustrieren, wie der
LIKE
-Operator verwendet wird. Ganze Zahlen stellen immer eine
Versions- oder Datei-ID dar.
Nur literaler Text:
<#LIKE> ("Nachts schlafen die Ratten doch.")
Explizite Angabe eines einzigen positiven Beispiels:
<#LIKE> ( "{posex=vdkvgwkey:650431}" )
Explizite Angabe mehrerer positiver und negativer Beispiele:
<#LIKE> ( "{posex=vdkvgwkey:7369 posex=vdkvgwkey:8457 negex=text:"freiwillige feuerwehr"}" )
Implizite Referenztypen:
<#LIKE> ("{posex=7369 posex=8457 negex=\"freiwillige feuerwehr\"}")
Implizite posex
-Namen:
<#LIKE> ( "{vdkdocid:7369 vdkvgwkey:8457}" )
Implizite Referenztypen und implizite posex
-Namen:
<#LIKE> ( "{#7369 8457}" )
Man kann eine Textreferenz mit literalem Text kombinieren:
<#LIKE> ( "{#7369 8457} und mehr text" )
Die vorige QBE ist äquivalent zu dieser:
<#LIKE> ( "{#7369 8457 text: \"und mehr text\"}" )
Die einfachste Art, ein einziges positives Beispiel mit Referenz auf eine ID anzugeben:
<#LIKE> ( "{650431}" )
Anführungszeichen, die in LIKE
-Ausdrücken enthalten sind,
müssen Rückwärts-Schrägstriche (Backslashes) vorausgehen. Der Backslash
zeigt der Suchmaschine an, dass das darauf folgende Zeichen als literales
Zeichen behandelt werden soll.
Überlegungen zur Effizienz
Um einen LIKE
-Ausdruck zu verarbeiten, muss die
Suchmaschine den gesamten Text der Beispiele in der QBE-Spezifikation
analysieren. Dies kann sehr zeitaufwändig sein, insbesondere, wenn die
Beispieldokumente groß sind oder aufwändig gefiltert werden müssen.