Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Verwaltete Azure SQL-Instanz
Wörtertrennung und Wortstammerkennung führen eine linguistische Analyse aller volltextindizierten Daten aus. Die linguistische Analyse führt die folgenden beiden Schritte aus:
Wortgrenzen finden (Wortumbruch). Die Wortsegmentierung identifiziert einzelne Wörter, indem sie anhand der lexikalischen Regeln der Sprache bestimmt, wo Wortgrenzen liegen. Jedes Wort (auch bezeichnet als Token) wird zur Größenreduzierung in einer komprimierten Darstellung in den Volltextindex eingefügt.
Konjugation von Verben (Stemming). Die Wortstammerkennung generiert Flexionsformen eines bestimmten Worts basierend auf den jeweiligen Regeln der Sprache. (Zum Beispiel sind „laufend“, „lief“ und „gelaufen“ verschiedene Formen des Worts „laufen“.)
Wörtertrennungen und Wortstammerkennungen sind sprachspezifisch.
Wörtertrennungen und Wortstammerkennungen sind sprachspezifisch, und die Regeln für die linguistische Analyse unterscheiden sich für verschiedene Sprachen. Mit sprachspezifischen Wörtertrennungen erzielen Sie für die jeweilige Sprache genauere Ergebnisbegriffe.
Um Wörtertrennungen und Wortstammerkennungen für alle von der SQL Server-Datenbank-Engine unterstützten Sprachen zu verwenden, müssen Sie in der Regel keine Maßnahmen ergreifen.
Wenn es eine Wörtertrennung für eine Sprachfamilie gibt, jedoch nicht für die jeweilige Untersprache, wird die Hauptsprache verwendet. Beispielsweise wird Text in kanadischem Französisch mit der Wörtertrennung für Französisch behandelt.
Ist für eine Sprache keine Wörtertrennung verfügbar, wird die neutrale Wörtertrennung verwendet. Mit dem neutralen Worttrenner werden Wörter an neutralen Zeichen wie Leerzeichen und Satzzeichen getrennt.
Rufen Sie die Liste der unterstützten Sprachen ab
Um die Liste der von Full-Text Search unterstützten Sprachen zu sehen, verwenden Sie die folgende Transact-SQL-Anweisung. Das Vorhandensein einer Sprache in der Liste gibt an, dass Wörtertrennungen für diese Sprache registriert sind.
SELECT *
FROM sys.fulltext_languages;
Liste der registrierten Worttrenner abrufen
Zur Verwendung der Wörtertrennungen für eine Sprache durch die Volltextsuche müssen diese registriert werden. Für registrierte Wörtertrennungen stehen auch die zugehörigen linguistischen Ressourcen für die Volltextindizierung und Abfragevorgänge zur Verfügung. Diese Ressourcen umfassen Wortstammerkennung, Füllwörter (Stoppwörter) und Thesaurus-Dateien.
Verwenden Sie die folgende Anweisung, um die Liste der registrierten Word-Breaker-Komponenten anzuzeigen.
EXECUTE sp_help_fulltext_system_components 'wordbreaker';
GO
Weitere Informationen finden Sie unter sp_help_fulltext_system_components.
Wenn Sie einen Word Breaker hinzufügen oder entfernen
Wenn Sie eine Wörtertrennung hinzufügen, entfernen oder ändern, müssen Sie die Liste der Microsoft Windows-Gebietsschemabezeichner (LCID) aktualisieren, die bei Volltextindizierung und -abfrage unterstützt werden. Weitere Informationen finden Sie unter Anpassen von Filtern und Wörtertrennungen.
Festlegen der Option für die Volltext-Standardsprache
Bei einer lokalisierten Version von SQL Server legt SQL Server-Setup die Option default full-text language auf die Sprache des Servers fest, falls eine entsprechende Übereinstimmung vorhanden ist. Bei einer nicht lokalisierten Version von SQL Serverwird Englisch für die Option Standard-Volltextsprache verwendet.
Beim Erstellen oder Ändern eines Volltextindexes können Sie für jede volltextindizierte Spalte eine andere Sprache angeben. Ist für eine Spalte keine Sprache angegeben, wird standardmäßig der Wert der Konfigurationsoption Volltext-Standardspracheverwendet.
Hinweis
Alle Spalten, die in einer einzigen Volltext-Abfragefunktionsklausel aufgeführt sind, müssen dieselbe Sprache verwenden, es sei denn, die LANGUAGE Option wird in der Abfrage angegeben. Die Sprache der volltextindizierten Spalte, auf die sich die Abfrage bezieht, bestimmt die linguistische Analyse, die mit Argumenten der Volltext-Abfrageprädikate (CONTAINS und FREETEXT) und -Funktionen (CONTAINSTABLE und FREETEXTTABLE) ausgeführt wird.
Auswählen der Sprache für eine indizierte Spalte
Wenn Sie einen Volltextindex erstellen, geben Sie für jede indexierte Spalte eine Sprache an. Wenn für eine Spalte keine Sprache angegeben ist, wird die Standardsprache des Systems verwendet. Die Sprache einer Spalte bestimmt, welche Wörtertrennung und Wortstammerkennung zum Indizieren dieser Spalte verwendet wird. Außerdem wird die Thesaurusdatei dieser Sprache bei Volltextabfragen in der Spalte verwendet.
Bei der Wahl der Spaltensprache für die Erstellung eines Volltextindex sind mehrere Dinge zu bedenken. Diese beziehen sich darauf, wie der Text von der Volltext-Engine in Token zerlegt und anschließend indiziert wird. Weitere Informationen finden Sie unter Choose a Language bei der Erstellung eines Volltext-Indexes.
Führen Sie die folgende Anweisung aus, um die Wordbreaker-Sprache bestimmter Spalten anzuzeigen.
SELECT language_id AS 'LCID'
FROM sys.fulltext_index_columns;
Weitere Informationen finden Sie unter sys.fulltext_index_columns.
Beheben von Timeoutfehlern bei der Wörtertrennung
In verschiedenen Fällen kann es zu Timeoutfehlern bei der Wörtertrennung kommen. Informationen zu diesen Situationen und zur Reaktion in den einzelnen Situationen finden Sie unter MSSQLSERVER_30053.
Informationen zum MSSQLSERVER_30053 Fehler
| Eigenschaft | Wert |
|---|---|
| Produktname | SQL Server |
| Ereignis-ID | 30053 |
| Ereignisquelle | MSSQLSERVER |
| Komponente | SQLEngine |
| Symbolischer Name | FTXT_QUERY_E_WORDBREAKINGTIMEOUT |
| Meldungstext | Timeout bei der Wörtertrennung für die Volltextabfragezeichenfolge. Dies kann geschehen, wenn der Wordbreaker lange für die Verarbeitung der Zeichenfolge der Volltextabfrage benötigt oder wenn eine große Anzahl von Abfragen auf dem Server ausgeführt wird. Führen Sie die Abfrage bei geringerer Auslastung erneut aus. |
Erklärung
In den folgenden Fällen kann es zu Timeoutfehlern bei der Wörtertrennung kommen:
Die Wörtertrennung ist für die Abfragesprache nicht richtig konfiguriert. Zum Beispiel sind die Registrierungseinstellungen falsch.
Die Wörtertrennung schlägt bei einer bestimmten Abfragezeichenfolge fehl.
Das Worttrennungsmodul gibt für eine bestimmte Abfragezeichenfolge zu viele Daten zurück. Diese Daten werden als möglicher Angriff in Form eines Pufferüberlaufs interpretiert, was dafür sorgt, dass der für die Ausführung der Wörtertrennungsdienste verantwortliche Filterdaemonprozess (
fdhost.exe) beendet wird.Der Filterdaemonprozess wurde falsch konfiguriert.
Zu den häufigsten Konfigurationsproblemen gehören abgelaufene Kennwörter oder Domänenrichtlinien, die eine Anmeldung am Filterdaemonkonto verhindern.
Auf der Serverinstanz wird eine große Abfragelast ausgeführt. Zum Beispiel benötigte der Wordbreaker lange, um die Zeichenfolge der Volltextabfrage zu verarbeiten, oder es wird eine große Anzahl von Abfragen auf dem Server ausgeführt. Dies ist die am wenigsten wahrscheinliche Ursache.
Aktion des Benutzers
Wählen Sie wie folgt die Benutzeraktion aus, die der wahrscheinlichen Ursache des Timeouts entspricht:
| Wahrscheinliche Ursache | Aktion des Benutzers |
|---|---|
| Die Wörtertrennung ist für die Abfragesprache nicht richtig konfiguriert. | Wenn Sie einen Drittanbieter-Worttrenner verwenden, ist er möglicherweise falsch bei dem Betriebssystem registriert. Registrieren Sie in diesem Fall den Word Breaker erneut. Weitere Informationen finden Sie unter Zurücksetzen der von der Volltextsuche verwendeten Worttrennungsfunktionen auf die vorherige Version. |
| Die Wörtertrennung schlägt bei einer bestimmten Abfragezeichenfolge fehl. | Wenn die Wörtertrennung von der Datenbank-Engine unterstützt wird, wenden Sie sich an den Microsoft-Kundenservice und -support. |
| Das Worttrennungsmodul gibt für eine bestimmte Abfragezeichenfolge zu viele Daten zurück. | Wenn das Worttrennmodul von der Datenbank-Engine unterstützt wird, wenden Sie sich an den Microsoft-Kundendienst und -Support. |
| Der Filterdaemonprozess wurde falsch konfiguriert. | Stellen Sie sicher, dass Sie das aktuelle Kennwort verwenden und dass eine Domänenrichtlinie nicht verhindert, dass sich das Filterdaemonkonto anmeldet. |
| Auf der Serverinstanz wird eine große Abfragelast ausgeführt. | Führen Sie die Abfrage bei geringerer Auslastung erneut aus. |
Verstehen Sie die Auswirkungen aktualisierter Wortsegmentierer
Jede Version der Datenbank-Engine kann aktualisierte Wortbrecher mit überarbeiteten linguistischen Regeln enthalten. Diese aktualisierten Wortbrecher könnten sich anders verhalten als Wortbrecher in Volltextindexen, die aus früheren Versionen der Datenbank-Engine importiert wurden.
Dies ist bedeutsam, wenn ein Volltextkatalog importiert wurde, als eine Datenbank auf die aktuelle Version der Datenbank-Engine aktualisiert wurde. Eine oder mehrere Sprachen, die von den Volltextindizes im Volltextkatalog verwendet werden, sind jetzt ggf. neuen Wörtertrennungen zugeordnet. Weitere Informationen finden Sie unter Upgrade der Volltextsuche.