Stopwörter und Stopplisten für Full-Text Search konfigurieren und verwalten

Gilt für:SQL ServerAzure SQL-DatenbankVerwaltete Azure SQL-Instanz

Um zu verhindern, dass ein Volltextindex aufgebläht wird, verfügt die SQL Server-Datenbank-Engine über einen Mechanismus, der häufig auftretende Strings verwirft, die der Suche nicht helfen. Diese verworfenen Zeichenfolgen werden als Stoppwörterbezeichnet. Während der Indexerstellung lässt die Volltext-Engine Stoppwörter vom Volltextindex weg. Das bedeutet, dass Volltextanfragen nicht nach Stopwords suchen.

Begriff Description
Stopwörter Ein Stoppwort kann ein Wort mit einer Bedeutung in einer bestimmten Sprache sein. Zum Beispiel werden im Englischen Wörter wie a, and, , isund the aus dem Volltextindex weggelassen, da sie für eine Suche nutzlos sind. Ein Stopword kann auch ein Token sein, das keine sprachliche Bedeutung hat.
Stopplisten Stopwörter werden in Datenbanken verwaltet, indem sie Objekte namens Stoplists verwenden. Eine Stoppliste ist eine Liste mit Stoppwörtern, die, wenn sie einem Volltextindex zugeordnet ist, auf Volltextabfragen für diesen Index angewendet wird.

Verwenden einer vorhandenen Stoppliste

Sie können eine vorhandene Stoppliste auf folgende Weise verwenden:

  • Verwenden Sie die vom System bereitgestellte Stoppliste in der Datenbank. Die Datenbank-Engine wird mit einer Systemstoppliste ausgeliefert, die die am häufigsten verwendeten Stopwörter für jede unterstützte Sprache enthält, also für jede Sprache, die standardmäßig mit bestimmten Wortbrechern assoziiert ist. Sie können die Systemstoppliste kopieren und Ihre Kopie durch das Hinzufügen und Entfernen von Stoppwörtern anpassen.

    Die System-Stoppliste ist in der Ressourcendatenbank installiert.

  • Verwenden Sie eine vorhandene benutzerdefinierte Stoppliste aus einer anderen Datenbank in der aktuellen Serverinstanz, und fügen Sie dann je nach Bedarf Stoppwörter hinzu oder entfernen Sie sie.

Erstellen einer neuen Stoppliste

Sie können eine Stoppliste mit Transact-SQL (T-SQL) oder SQL Server Management Studio (SSMS) erstellen.

Erstellen einer neuen Stoppliste mit Transact-SQL

Verwenden Sie CREATE FULLTEXT STOPLIST.

Erstellen Sie eine neue Stoppliste mit SQL Server Management Studio

  1. Erweitern Sie im Objekt-Explorer den Server.

  2. Erweitern Sie Datenbanken, und erweitern Sie dann die Datenbank, in der die Volltext-Stopliste erstellt werden soll.

  3. Erweitern Sie Speicher, und klicken Sie dann mit der rechten Maustaste auf Volltext-Stopplisten.

  4. Wählen Sie Neue Volltext-Stoppliste.

  5. Geben Sie den Namen der neuen Stoppliste ein.

  6. Optional können Sie eine andere Person als Besitzer der Stoppliste angeben.

  7. Wählen Sie eine der folgenden Optionen zur Erstellung der Stoppliste:

    • Leere Stoppliste erstellen

    • Aus der Systemstoppliste erstellen

    • Aus vorhandener Volltext-Stoppliste erstellen

    Weitere Informationen finden Sie unter Neue Volltext-Stoppliste /Allgemeine Seite).

  8. Wählen Sie OK aus.

Verwenden einer Stoppliste in Volltextabfragen

Wenn Sie eine Stoppliste in Abfragen verwenden möchten, müssen Sie diese einem Volltextindex zuordnen. Sie können einem Volltextindex eine Stoppliste zuordnen, wenn Sie den Index erstellen, oder Sie können den Index später ändern, um eine Stoppliste hinzuzufügen.

Aufgabe Method
Erstellen Sie einen Volltextindex und verknüpfen Sie ihn mit einer Stoppliste Verwenden Sie CREATE FULLTEXT INDEX.
Eine Stoppliste einem vorhandenen Volltextindex zuordnen oder die Zuordnung aufheben Verwenden Sie ALTER FULLTEXT INDEX.

Stoppwörter in einer Stoppwortliste ändern

Sie können die Stopwörter in einer Stoppliste mit Transact-SQL (T-SQL) oder SQL Server Management Studio (SSMS) ändern.

Hinzufügen oder Löschen von Stoppwörtern auf einer Stoppliste mit Transact-SQL

Verwenden Sie ALTER FULLTEXT STOPLIST.

Stopwörter aus einer Stoppliste mit SQL Server Management Studio hinzufügen oder entfernen

  1. Erweitern Sie im Objekt-Explorer den Server.

  2. Erweitern Sie Datenbanken, und erweitern Sie dann die Datenbank.

  3. Erweitern Sie Speicher, und wählen Sie dann Volltext-Stopplisten.

  4. Klicken Sie mit der rechten Maustaste auf die Stoppliste, deren Eigenschaften Sie ändern möchten, und wählen Sie Eigenschaftenaus.

  5. Im Dialogfeld Volltext-Stopplisten-Eigenschaften :

    1. Wählen Sie im Listenfeld Aktion eine der folgenden Aktionen aus: Stoppwort hinzufügen, Stoppwort löschen, Alle Stoppwörter löschenoder Inhalt der Stoppliste löschen.

    2. Wenn das Textfeld Stoppwort für die ausgewählte Aktion aktiviert ist, geben Sie ein einzelnes Stoppwort ein. Dieses Stopwort muss einzigartig sein. Es kann nicht schon in dieser Stoppliste für die von dir gewählte Sprache stehen.

    3. Wenn das Listenfeld Volltextsprache für die ausgewählte Aktion aktiviert ist, wählen Sie eine Sprache aus.

  6. Wählen Sie OK aus.

Verwalten von Stopplisten und ihre Verwendung

Verwenden Sie die folgenden Methoden, um Stopplisten anzuzeigen und zu verwalten.

Aufgabe Method
Alle Stoppwörter einer Stoppliste anzeigen Nutze sys.fulltext_stopwords.
Erhalten Sie Informationen zu allen Stopplisten in der aktuellen Datenbank Nutze sys.fulltext_stoplists und sys.fulltext_stopwords.
Tokenisierungsergebnis einer Kombination aus Worttrennungsmodul, Thesaurus und Stoppliste anzeigen Nutze sys.dm_fts_parser.
Unterdrücken einer Fehlermeldung, wenn ein boolescher Vorgang für eine Volltextabfrage aufgrund von Stoppwörtern fehlschlägt Verwenden Sie Serverkonfigurationsoption: Füllwörtertransformation.

Weitere Informationen zur Position von Stopworten

Obwohl der Volltextindex die Einbeziehung von Stopwörtern ignoriert, berücksichtigt er deren Position. Betrachten wir zum Beispiel die Phrase Instructions are applicable to these Adventure Works Cycles models. In der folgenden Tabelle sind die Positionen der Wörter im Ausdruck angegeben:

Word Position
Instructions 1
are 2
applicable 3
to 4
these 5
Adventure 6
Works 7
Cycles 8
models 9

Die Stoppwörter are, to, und these die sich an den Positionen 2, 4 und 5 befinden, werden im Volltextindex ausgelassen. Die Positionsinformationen bleiben jedoch erhalten, sodass die Positionen der anderen Wörter im Ausdruck unverändert bleiben.

Aktualisieren von Füllwörtern von SQL Server 2005

SQL Server 2005 (9.x)-Füllwörter werden durch Stoppwörter ersetzt. Wenn eine Datenbank von SQL Server 2005 (9.x) aktualisiert wird, werden die Stoppwortdateien nicht mehr verwendet. Die alten Füllwortdateien werden jedoch im Ordner FTDATA\FTNoiseThesaurusBak gespeichert, und Sie können sie später beim Aktualisieren oder Erstellen der entsprechenden Stopplisten verwenden. Informationen zum Upgrade von Füllwortdateien auf Stoplisten finden Sie unter Upgrade der Volltextsuche.