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:
namekann entwederposex(positives Beispiel), odernegex(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 Variablenameist optional. Wird sie nicht angegeben, so wirdnameintern aufposexgesetzt. In diesem Fall darf auch das Gleichheitszeichen nicht angegeben werden.typekann 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.
valueist eine Referenz auf ein Textfragment, das als positives bzw. negatives Beispiel dient. Der Wert vonvaluehängt vom Wert vontypeab: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:
- als literaler Text, wenn er mit einem Anführungszeichen beginnt;
- als
VdkVgwKeyin 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.