CONTAINS ( Spaltenname [,...], CONTAINS-Abfragezeichenfolge )
CONTAINS-Abfragezeichenfolge : Einfacher_Ausdruck | Oder-Ausdruck
Einfacher_Ausdruck : Primärausdruck | UND-Ausdruck
ODER-Ausdruck : Einfacher_Ausdruck { OR | | } CONTAINS-Abfragezeichenfolge
Primärausdruck : Grundausdruck | FUZZY " Annähernder_Ausdruck " | UND-NICHT-Ausdruck
UND-Ausdruck : Primärausdruck [ AND | & ] Einfacher_Ausdruck
UND-NICHT-Ausdruck : Primärausdruck [ AND | & ] { NOT | - } Grundausdruck
Grundausdruck : Begriff | Phrase | ( CONTAINS-Abfragezeichenfolge ) | NAHE-BEI-Ausdruck
Annähernder_Ausdruck : Begriff | Annähernder_Ausdruck Begriff
Begriff : Einfacher_Begriff | Präfixbegriff
Präfixbegriff :
Einfacher_Begriff*
Phrase : " Phrasenzeichenfolge "
NAHE-BEI-Ausdruck : Begriff NEAR [Abstand] Begriff | Begriff { NEAR | ~ } Begriff
Phrasenzeichenfolge : Begriff | Phrasenzeichenfolge Begriff
Einfacher_Begriff: Eine Zeichenfolge, die durch Leerzeichen und Sonderzeichen unterbrochen wird und einen einzelnen, indizierten Begriff (Wort) darstellt, nach dem gesucht werden soll.
Abstand: Eine positive Ganzzahl
UND-Ausdruck Verwenden Sie einen UND-Ausdruck, um anzugeben, dass sowohl der Primärausdruck als auch der Einfache_Ausdruck im Textindex gefunden werden müssen.
Standardmäßig gilt: Wenn zwischen Begriffe oder Ausdrücke kein Operator gesetzt ist, wird ein UND-Ausdruck angenommen. 'a b'
wird beispielsweise als 'a AND b'
interpretiert.
Ein kaufmännisches Und (&) kann anstelle von AND verwendet werden und ohne Zwischenraum an beiden Seiten an die Ausdrücke
oder Begriffe gesetzt werden (Beispiel: 'a &b'
).
Weitere Hinweise finden Sie unter Zulässige Syntax für Sonderzeichen.
UND-NICHT-Ausdruck Verwenden Sie den UND-NICHT-Ausdruck, um anzugeben, dass der Primärausdruck im Textindex vorhanden sein muss, der Grundausdruck hingegen im Textindex nicht enthalten sein darf. Dies wird auch als Negation bezeichnet.
Wenn Sie einen Bindestrich für die Negation verwenden, muss links vor dem Bindestrich ein Leerzeichen gesetzt werden, rechts
nach dem Bindestrich hingegen muss der Begriff ohne Leerzeichen unmittelbar folgen, da sonst der Bindestrich nicht als Negationszeichen
angesehen wird. Beispiel: 'a -b'
ist gleich 'a AND NOT b'
, während bei 'a - b'
der Bindestrich ignoriert wird und die Zeichenfolge 'a AND b'
entspricht. 'a-b'
entspricht der Phrase '"a b"'
. Weitere Hinweise finden Sie unter Zulässige Syntax für den Bindestrich (-).
ODER-Ausdruck Verwenden Sie den ODER-Ausdruck um anzugeben, dass entweder der Einfache_Ausdruck oder die CONTAINS-Abfragezeichenfolge im Textindex vorhanden sein muss. 'a|b'
wird beispielsweise als 'a OR b'
interpretiert. Weitere Hinweise finden Sie unter Zulässige Syntax für Sonderzeichen.
FUZZY-Ausdruck Verwenden Sie den FUZZY-Ausdruck um Begriffe zu finden, die dem angegebenen Begriff ähnlich sind. Fuzzy-Suchen werden nur in NGRAM-Textindizes unterstützt. Weitere Hinweise finden Sie unter Fuzzy-Suchen.
NAHE-BEI-Ausdruck Verwenden Sie den NAHE-BEI-Ausdruck, um nach Begriffen zu suchen, die nahe beieinander liegen. Dies wird auch als Nachbarschaftssuche bezeichnet. Beispiel: 'b NEAR[5] c'
sucht nach Vorkommen von b und c, die maximal fünf Begriffe voneinander entfernt sind. Die Reihenfolge der Begriffe ist nicht
wichtig. 'b NEAR c'
entspricht 'c NEAR b'
.
Wenn NEAR ohne Abstand angegeben wird, gilt ein Standardabstand von 10 Begriffen.
Sie können anstelle von NEAR auch eine Tilde (~) eingeben. Dies entspricht der Angabe von NEAR ohne Abstand, sodass ein Standard von 10 Begriffen angewendet wird.
NEAR-Ausdrücke können nicht verkettet werden (Beispiel: 'a NEAR[1] b NEAR[1] c'
).
Weitere Hinweise finden Sie unter Zulässige Syntax für Sonderzeichen und Nachbarschaftssuche.
Präfixbegriff Verwenden Sie den Präfixbegriff, um nach Begriffen zu suchen, die mit dem angegebenen Präfix beginnen. Beispiel: 'datab*'
sucht nach einem Begriff, der mit datab beginnt. Dies wird auch als Präfixsuche bezeichnet. In einer Präfixsuche werden Übereinstimmungen in dem Abschnitt des Begriffs gesucht, der sich links vom Sternchen
befindet. Weitere Hinweise finden Sie unter Zulässige Syntax für den Sternchen-Platzhalter (*) und Präfixsuche.
Die Suchbedingung CONTAINS übernimmt eine Spaltenliste und eine CONTAINS-Abfragezeichenfolge als Argumente. Sie kann überall dort verwendet werden, wo eine Suchbedingung (auch als "Prädikat" bezeichnet) angegeben werden kann, und gibt TRUE oder FALSE zurück. CONTAINS-Abfragezeichenfolge muss eine Konstantenzeichenfolge oder eine Variable sein, mit einem Wert, der zum Abfragezeitpunkt bekannt ist.
Wenn mehrere Spalten angegeben werden, müssen sie sich alle auf eine einzige Basistabelle beziehen. Ein Textindex kann sich nicht über mehrere Basistabellen erstrecken. Die Basistabelle kann direkt in der FROM-Klausel referenziert werden, sie kann aber auch in einer Ansicht oder einer abgeleiteten Tabelle benutzt werden, vorausgesetzt dass die Ansicht oder abgeleitete Tabelle nicht DISTINCT, GROUP BY, ORDER BY, UNION, INTERSECT, EXCEPT oder eine Zeilenbegrenzung benutzt.
Die folgenden Warnungen gelten für die Verwendung von nicht-alphanumerischen Zeichen in Abfragezeichenfolgen:
Ein Stern in der Mitte eines Begriffs bewirkt die Rückgabe eines Fehlers.
Nicht-alphanumerische Zeichen (und Sonderzeichen) sollten als Annähernder_Ausdruck nicht verwendet werden, weil sie als Leerzeichen angesehen und als Begriffssegmentierer verwendet werden.
Wenn möglich, sollten nicht-alphanumerische Zeichen, die keine Sonderzeichen sind, in einer Abfragezeichenfolge nicht verwendet
werden. Jedes nicht-alphanumerische Zeichen, das kein Sonderzeichen ist, bewirkt, dass der Begriff, in dem es vorkommt, als
Phrase behandelt wird, wobei der Begriff an der Stelle des Zeichens segmentiert wird. 'things we've done'
wird beispielsweise als 'things "we ve" done'
interpretiert.
Innerhalb von Phrasen ist der Stern das einzige Sonderzeichen, das weiterhin als Sonderzeichen interpretiert wird. Alle anderen Sonderzeichen in Phrasen werden als Leerzeichen interpretiert und als Begriffssegmentierer verwendet.
Die Interpretation der CONTAINS-Abfragezeichenfolge wird in zwei Hauptschritten durchgeführt:
Schritt 1: Interpretation von Operatoren und Vorrang Während dieses Schrittes werden Schlüsselwörter als Operatoren interpretiert und Vorrangregeln angewendet. Weitere Hinweise finden Sie unter Operatorvorrang in einer CONTAINS-Suchbedingung.
Schritt 2: Anwendung von Einstellungen für das Textkonfigurationsobjekt Während dieses Schrittes werden die Einstellungen für Textkonfigurationsobjekte auf die Begriffe angewendet. Beispiel: Bei einem NGRAM-Textindex werden Begriffe in ihre n-gram-Darstellung segmentiert. Während dieses Schrittes werden die Abfragebegriffe, die die Einstellungen für die Begriffslänge überschreiten oder in der Stoppliste enthalten sind, entfernt. Weitere Hinweise zur Interpretation einer Abfragezeichenfolge bei der Entfernung von Begriffen finden Sie unter Beispiel-Textkonfigurationsobjekte.
Während der Auswertung der Abfrage werden die Ausdrücke gemäß der nachstehenden Vorrangfolge ausgewertet:
FUZZY, NEAR
AND NOT
AND
OR
Das Sternchen wird für die Präfixsuche verwendet. Ein Sternchen muss entweder am Ende der Abfragezeichenfolge stehen oder es muss ein Leerzeichen, ein kaufmännisches Und, ein Senkrechtstrich, eine geschlossene eckige Klammer oder ein schließendes Anführungszeichen darauf folgen. In allen anderen Fällen wird ein Fehler gemeldet.
In der folgenden Tabelle werden die zulässigen Verwendungsmöglichkeiten für einen Sternchen-Platzhalter angegeben:
Abfragezeichenfolge | Entspricht: | Interpretiert als: |
---|---|---|
|
Suche nach allen Begriffen, die mit th beginnen. |
|
|
|
Suche nach einem Begriff, der mit th beginnt, und nach dem Begriff best. |
|
|
Suche entweder nach einem Begriff, der mit th beginnt, oder nach dem Begriff "best". |
|
|
Suche nach dem Begriff "very" und dem Begriff "best" oder einem beliebigen Begriff, der mit th beginnt. |
|
Suche nach dem Begriff "fast", auf den unmittelbar ein Begriff folgt, der mit auto beginnt. |
|
|
Suche nach einem Begriff, der mit auto beginnt und auf den unmittelbar der Begriff "price" folgt. |
Die Interpretation der Abfragezeichenfolgen mit Sternchen kann je nach den Einstellungen für das Textkonfigurationsobjekt unterschiedlich ausfallen. Weitere Hinweise finden Sie unter Präfixsuche.
Der Bindestrich kann für die Negation eines Begriffs oder eines Ausdrucks verwendet werden und entspricht dem Operator NOT. Ob ein Bindestrich als Negation interpretiert wird, hängt von seiner Stellung in der Abfragezeichenfolge ab. Beispiel: Wenn ein Bindestrich direkt vor einem Begriff oder einem Ausdruck steht, wird er als Negation interpretiert. Wenn ein Bindestrich in einen Begriff eingebettet ist, wird er als Bindestrich interpretiert.
Vor einem als Negation verwendeten Bindestrich muss ein Leerzeichen stehen, danach muss unmittelbar ein Ausdruck folgen.
Ein Bindestrich in einer Phrase oder einem Annähernden_Ausdruck wird als Leerzeichen interpretiert und als Begriffssegmentierer verwendet.
Die nachstehende Tabelle zeigt die zulässige Syntax für einen Bindestrich:
Abfragezeichenfolge | Entspricht: | Interpretiert als: |
---|---|---|
|
|
Suche nach dem Begriff "the", aber nicht nach dem Begriff "best". |
|
'the AND NOT (very AND best)' |
Suche nach dem Begriff "the", aber nicht nach den Begriffen "very" und "best". |
|
'the AND NOT "very best"' |
Suche nach dem Begriff "the", aber nicht nach der Phrase "very best". |
|
|
Suche nach dem Begriff "alpha", auf den unmittelbar der Begriff "numerics" folgt. |
|
|
Suche den Begriff "wild" und den Begriff "west". |
Die nachstehende Tabelle zeigt die zulässige Syntax für alle Sonderzeichen mit Ausnahme von Sternchen-Platzhaltern und Bindestrichen, die weiter oben unter Zulässige Syntax für den Sternchen-Platzhalter (*) und Zulässige Syntax für den Bindestrich (-) behandelt wurden.
Diese Zeichen werden nicht als Sonderzeichen angesehen, wenn sie in einer Phrase vorkommen, und daher entfernt.
Dieselben Einschränkungen hinsichtlich der Angabe von Zeichenfolgenliteralen gelten auch für die Abfragezeichenfolge. So müssen beispielsweise die Apostrophe mit Escapezeichen versehen werden, usw. Weitere Informationen zur Formatierung von Zeichenfolgenliteralen finden Sie unter Zeichenfolgenliterale.
Zeichen oder Syntax | Beispiele zur Verwendung und Bemerkungen |
---|---|
Kaufmännisches Und (&) |
Das kaufmännische Und entspricht AND und kann wie folgt angegeben werden:
|
Senkrechtstrich (|) |
Der Senkrechtstrich entspricht OR und kann wie folgt angegeben werden:
|
Anführungszeichen (") |
Anführungszeichen werden verwendet, um eine Folge von Begriffen abzugrenzen, in der die Reihenfolge und der relative Abstand
wichtig sind. Beispiel: In der Abfragezeichenfolge |
Klammern () |
Klammern werden verwendet, um die Reihenfolge der Auswertung von Ausdrücken anzugeben, wenn sie von der Standardreihenfolge
abweicht. Beispiel: Hinweise zur Standardreihenfolge der Auswertung finden Sie unter Operatorvorrang in einer CONTAINS-Suchbedingung. |
Tilde (~) |
Die Tilde ist gleichwertig mit NEAR und hat keine besonderen Syntaxregeln. Die Abfragezeichenfolge |
Eckige Klammern [ ] |
Eckige Klammern werden in Verbindung mit dem Schlüsselwort NEAR verwendet, um den Abstand anzugeben. Wenn eckige Klammern in anderer Form verwendet werden, wird ein Fehler zurückgegeben. |
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |