Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Daten abfragen und ändern » Daten abfragen » Arten der Volltextsuche

 

Boolesche Suche

Sie können bei einer Volltextsuche mehrere Begriffe angeben, die durch Boolesche Operatoren getrennt sind. SQL Anywhere unterstützt die folgenden Booleschen Operatoren, wenn eine Volltextsuche durchgeführt wird: AND, OR und AND NOT.

Weitere Hinweise zur Syntax für die Boolesche Suche finden Sie unter CONTAINS-Suchbedingung.

Den AND-Operator in der Volltextsuche verwenden

Der AND-Operator findet eine Zeile, wenn sie beide Begriffe enthält, die links bzw. rechts des AND-Operators angegeben sind. Sie können auch ein kaufmännisches Und (&) für den AND-Operator verwenden. Wenn Begriffe ohne Operator angegeben sind, wird AND angenommen.

Die Reihenfolge, in der die Begriffe aufgelistet sind, ist unwichtig.

Beispiel: Jede der folgenden Anweisungen findet Zeilen in "MarketingInformation.Description", die den Begriff fabric und einen Begriff enthalten, der mit ski beginnt:

SELECT * 
   FROM MarketingInformation 
   WHERE CONTAINS ( MarketingInformation.Description, 'ski* AND fabric' );
SELECT * 
   FROM MarketingInformation 
   WHERE CONTAINS ( MarketingInformation.Description, 'fabric & ski*' );
SELECT * 
   FROM MarketingInformation 
   WHERE CONTAINS ( MarketingInformation.Description, 'ski* fabric' );
Den OR-Operator in der Volltextsuche verwenden

Der OR-Operator findet eine Zeile, wenn sie zumindest einen der links oder rechts von OR angegebenen Suchbegriffe enthält. Sie können auch einen Senkrechtstrich (|) anstelle des OR-Operators verwenden. Die beiden sind äquivalent.

Die Reihenfolge, in der die Begriffe aufgelistet sind, ist unwichtig.

Beispiel: Beide der folgenden Anweisungen finden Zeilen in "MarketingInformation.Description", die entweder den Begriff fabric oder einen Begriff enthalten, der mit ski beginnt:

SELECT * 
   FROM MarketingInformation 
   WHERE CONTAINS ( MarketingInformation.Description, 'ski* OR fabric' );
SELECT * 
   FROM MarketingInformation 
   WHERE CONTAINS ( MarketingInformation.Description, 'fabric | ski*' );
Den AND NOT-Operator in der Volltextsuche verwenden

Der AND NOT-Operator findet Ergebnisse, die mit dem linken Argument, aber nicht dem rechten Argument übereinstimmen. Sie können auch einen Bindestrich (-) anstelle des AND NOT-Operators verwenden. Die beiden sind äquivalent.;

Beispiel: Die folgenden Anweisungen sind gleichwertig und geben Zeilen zurück, die den Begriff fabric, aber keine Begriffe enthalten, die mit ski beginnen.

SELECT * 
   FROM MarketingInformation 
   WHERE CONTAINS ( MarketingInformation.Description, 'fabric AND NOT ski*' );
SELECT * 
   FROM MarketingInformation 
   WHERE CONTAINS ( MarketingInformation.Description, 'fabric -ski*' );
SELECT * 
   FROM MarketingInformation 
   WHERE CONTAINS ( MarketingInformation.Description, 'fabric & -ski*' );
Verschiedene Boolesche Operatoren kombinieren

Die Booleschen Operatoren können in einer Abfragezeichenfolge kombiniert werden. Beispiel: Die folgenden Anweisungen sind gleichwertig und durchsuchen die Spalte "MarketingInformation.Description" nach Einträgen, die fabric und skin, aber nicht cotton enthalten:

SELECT * 
   FROM MarketingInformation 
   WHERE CONTAINS ( MarketingInformation.Description, 'skin fabric -cotton' );
SELECT * 
   FROM MarketingInformation 
   WHERE CONTAINS ( MarketingInformation.Description, 'fabric -cotton AND skin' );

Die folgenden Anweisungen sind gleichwertig und durchsuchen die Spalte "MarketingInformation.Description" nach Einträgen, die fabric oder sowohl cotton als auch skin enthalten:

SELECT * 
   FROM MarketingInformation 
   WHERE CONTAINS ( MarketingInformation.Description, 'fabric | cotton AND skin' );
SELECT * 
   FROM MarketingInformation 
   WHERE CONTAINS ( MarketingInformation.Description, 'cotton skin OR fabric' );
Begriffe und Phrasen gruppieren

Begriffe und Ausdrücke können mit Klammern gruppiert werden. Beispiel: Die folgende Anweisung durchsucht die Spalte "MarketingInformation.Description" nach Einträgen, die cotton oder fabric sowie Begriffe enthalten, die mit ski beginnen.

SELECT ID, Description FROM MarketingInformation
   WHERE CONTAINS( MarketingInformation.Description, '( cotton OR fabric ) AND shi*' );
Description
902 <html><head><meta http-equiv=Content-Type content="text/html; charset=windows-1252"><title>Tee Shirt</title></head><body lang=EN-US><p><span style='font-size:10.0pt;font-family:Arial'>This simple, sleek, and lightweight technical shirt is designed for high-intensity workouts in hot and humid weather. The recycled polyester fabric is gentle on the earth and soft against your skin.</span></p></body></html>
903 <html><head><meta http-equiv=Content-Type content="text/html; charset=windows-1252"><title>Tee Shirt</title></head><body lang=EN-US><p><span style='font-size:10.0pt;font-family:Arial'>A sporty, casual shirt made of recycled water bottles. It will serve you equally well on trails or around town. The fabric has a wicking finish to pull perspiration away from your skin.</span></p></body></html>
906 <html><head><meta http-equiv=Content-Type content="text/html; charset=windows-1252"><title>Visor</title></head><body lang=EN-US><p><span style='font-size:10.0pt;font-family:Arial'>Lightweight 100% organically grown cotton construction. Shields against sun and precipitation. Metallic ions in the fibers inhibit bacterial growth, and help neutralize odor.</span></p></body></html>
Mehrere Spalten durchsuchen

Sie können eine Volltextsuche über mehrere Spalten in einer einzigen Abfrage durchführen, sofern die Spalten Teil desselben Textindexes sind.

SELECT * 
   FROM Products 
      WHERE CONTAINS ( Tab.Spalt1, Tab.Spalt2, 'Begriff1|Begriff2' );
SELECT * 
   FROM Tabelle 
   WHERE CONTAINS( Tab-Spalt1, ' Begriff1' ) 
      OR CONTAINS( Tab.Spalt2, 'Begriff2' );

Die erste Abfrage findet Übereinstimmungen, wenn Tab1-Spalt1 Begriff2 oder wenn Tab1.Spalt2 Begriff2 enthält

Die zweite Abfrage findet Übereinstimmungen, wenn entweder Tab1.Spalt1 oder Tab1.Spalt2 entweder Begriff1 oder Begriff2 enthält. Diese Verwendung von CONTAINS gibt auch Punktewerte für die Übereinstimmungen zurück. Weitere Hinweise finden Sie unter Volltext-Suchergebnisse bewerten.