Konfigurieren und Verwalten von Wörtertrennungen und Wortstammerkennungen für die Suche (SQL Server)Configure & manage word breakers & stemmers for search (SQL Server)

Gilt für: JaSQL Server JaAzure SQL-Datenbank NeinAzure Synapse Analytics (SQL DW) NeinParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Wörtertrennung und Wortstammerkennung führen eine linguistische Analyse aller volltextindizierten Daten aus.Word breakers and stemmers perform linguistic analysis on all full-text indexed data. Die linguistische Analyse führt die folgenden beiden Schritte aus:Linguistic analysis does the following two things:

  • Suchen von Wortgrenzen (Wörtertrennung) .Find word boundaries (word-breaking). Die Wörtertrennung identifiziert einzelne Wörter, indem die Wortgrenzen basierend auf den lexikalischen Regeln der Sprache ermittelt werden.The word breaker identifies individual words by determining where word boundaries exist based on the lexical rules of the language. Jedes Wort (auch bezeichnet als Token) wird zur Größenreduzierung in einer komprimierten Darstellung in den Volltextindex eingefügt.Each word (also known as a token) is inserted into the full-text index using a compressed representation to reduce its size.

  • Konjugieren von Verben (Wortstammerkennung) .Conjugate verbs (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“.)The stemmer generates inflectional forms of a particular word based on the rules of that language (for example, "running", "ran", and "runner" are various forms of the word "run").

Wörtertrennungen und Wortstammerkennungen sind sprachspezifisch.Word breakers and stemmers are language specific

Wörtertrennungen und Wortstammerkennungen sind sprachspezifisch, und die Regeln für die linguistische Analyse unterscheiden sich für verschiedene Sprachen.Word breakers and stemmers are language specific, and the rules for linguistic analysis differ for different languages. Mit sprachspezifischen Wörtertrennungen erzielen Sie für die jeweilige Sprache genauere Ergebnisbegriffe.Language-specific word breakers make the resulting terms more accurate for that language.

Um Wörtertrennungen und Wortstammerkennungen für alle von SQL Server unterstützten Sprachen zu verwenden, müssen Sie in der Regel keine Maßnahmen ergreifen.To use the word breakers and stemmers provided for all the languages supported by SQL Server, you typically don't have to take any action.

  • Wenn es eine Wörtertrennung für eine Sprachfamilie gibt, jedoch nicht für die jeweilige Untersprache, wird die Hauptsprache verwendet.Where there is a word breaker for the language family, but not for the specific sub-language, the major language is used. Beispielsweise wird Text in kanadischem Französisch mit der Wörtertrennung für Französisch behandelt.For example, the French word breaker is used to handle text that is French Canadian.
  • Ist für eine Sprache keine Wörtertrennung verfügbar, wird die neutrale Wörtertrennung verwendet.If no word breaker is available for a particular language, the neutral word breaker is used. Mit der neutralen Wörtertrennung werden neutrale Zeichen, wie Leerzeichen und Satzzeichen, als Wortgrenzen betrachtet.With the neutral word breaker, words are broken at neutral characters such as spaces and punctuation marks.

Anzeigen der vollständigen Liste der unterstützten SprachenGet the list of supported languages

Verwenden Sie die folgende Transact-SQLTransact-SQL-Anweisung, um die Liste der von SQL ServerSQL Server-Volltextsuche unterstützten Sprachen anzuzeigen.To see the list of languages supported by SQL ServerSQL Server Full-Text Search, use the following Transact-SQLTransact-SQL statement. Das Vorhandensein einer Sprache in der Liste gibt an, dass Wörtertrennungen für diese Sprache registriert sind.The presence of a language in this list indicates that word breakers are registered for the language.

SELECT * FROM sys.fulltext_languages

Anzeigen der Liste der registrierten WörtertrennungenGet the list of registered word breakers

Zur Verwendung der Wörtertrennungen für eine Sprache durch die Volltextsuche müssen diese registriert werden.For Full-Text Search to use the word breakers for a language, they must be registered. Bei registrierten Wörtertrennungen sind die zugeordneten sprachlichen Ressourcen – Wortstammerkennung, Füllwörter (Stoppwörter) und Thesaurusdateien – für Volltextindizierungs- und Volltextabfragevorgänge verfügbar.For registered word breakers, associated linguistic resources - stemmers, noise words (stopwords), and thesaurus files - also become available to full-text indexing and querying operations.

Verwenden Sie die folgende Anweisung, um die Liste der registrierten Wörtertrennungskomponenten anzuzeigen.To see the list of registered word breaker components, use the following statement.

EXEC sp_help_fulltext_system_components 'wordbreaker';  
GO  

Zusätzliche Optionen und weitere Informationen finden Sie unter sp_help_fulltext_system_components (Transact-SQL).For additional options and more info, see sp_help_fulltext_system_components (Transact-SQL).

Hinzufügen oder Entfernen einer WörtertrennungIf you add or remove a word breaker

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.If you add, remove, or alter a word breaker, you need to refresh the list of Microsoft Windows locale identifiers (LCIDs) that are supported for full-text indexing and querying. Weitere Informationen finden Sie unter anzeigen oder Ändern von registrierten filtern und Wörtertrennungen.For more information, see View or Change Registered Filters and Word Breakers.

Festlegen der Option für die Volltext-StandardspracheSet the default full-text language option

Bei einer lokalisierten Version von SQL ServerSQL Serverwird die Option SQL ServerSQL Server Volltext-Standardsprache vom -Setup auf die Sprache des Servers festgelegt, falls eine geeignete Übereinstimmung vorhanden ist.For a localized version of SQL ServerSQL Server, SQL ServerSQL Server Setup sets the default full-text language option to the language of the server if an appropriate match exists. Bei einer nicht lokalisierten Version von SQL ServerSQL Serverwird Englisch für die Option Volltext-Standardsprache verwendet.For a non-localized version of SQL ServerSQL Server, the default full-text language option is English.

Beim Erstellen oder Ändern eines Volltextindexes können Sie für jede volltextindizierte Spalte eine andere Sprache angeben.When you create or alter a full-text index, you can specify a different language for each full-text indexed column. Ist für eine Spalte keine Sprache angegeben, wird standardmäßig der Wert der Konfigurationsoption Volltext-Standardspracheverwendet.If no language is specified for a column, the default is the value of the configuration option default full-text language.

Hinweis

Alle Spalten, die in einer einzelnen Klausel für eine Volltextabfragefunktion aufgelistet sind, müssen dieselbe Sprache verwenden, sofern nicht die LANGUAGE-Option in der Abfrage angegeben ist.All columns listed in a single full-text query function clause must use the same language, unless the LANGUAGE option is specified in the query. 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.The language used for the full-text indexed column being queried determines the linguistic analysis performed on arguments of the full-text query predicates (CONTAINS and FREETEXT) and functions (CONTAINSTABLE and FREETEXTTABLE).

Auswählen der Sprache für eine indizierte SpalteChoose the language for an indexed column

Beim Erstellen eines Volltextindex wird empfohlen, die Sprache für jede indizierte Spalte anzugeben.When creating a full-text index, we recommend that you specify a language for each indexed column. Wenn für eine Spalte keine Sprache angegeben ist, wird die Standardsprache des Systems verwendet.If a language is not specified for a column, the system default language is used. Die Sprache einer Spalte bestimmt, welche Wörtertrennung und Wortstammerkennung zum Indizieren dieser Spalte verwendet wird.The language of a column determines which word breaker and stemmer are used for indexing that column. Außerdem wird die Thesaurusdatei dieser Sprache bei Volltextabfragen der Spalte verwendet.Also, the thesaurus file of that language will be used by full-text queries on the column.

Bei der Wahl der Spaltensprache für die Erstellung eines Volltextindex sind mehrere Dinge zu bedenken.There are a couple of things to consider when choosing the column language for creating a full-text index. Diese beziehen sich darauf, wie der Text von der Volltext-Engine in Token zerlegt und anschließend indiziert wird.These considerations relate to how your text is tokenized and then indexed by Full-Text Engine. Weitere Informationen finden Sie unter Auswählen einer Sprache beim Erstellen eines Volltextindex.For more information, see Choose a Language When Creating a Full-Text Index.

Führen Sie die folgende Anweisung aus, um die Wörtertrennungssprache bestimmter Spalten anzuzeigen.To view the word breaker language of specific columns, run the following statement.

SELECT language_id AS 'LCID' FROM sys.fulltext_index_columns;

Zusätzliche Optionen und weitere Informationen finden Sie unter sys.fulltext_index_columns (Transact-SQL).For additional options and more info, see sys.fulltext_index_columns (Transact-SQL).

Behebung von Timeoutfehlern bei der WörtertrennungTroubleshoot word-breaking time-out errors

Timeoutfehler können bei der Wörtertrennung in verschiedenen Situationen auftreten.A word-breaking time-out error may occur in a variety of situations. Weitere Informationen zu diesen Situationen sowie zur Behandlung dieser Fehler finden Sie unter MSSQLSERVER_30053.or information about these situations and how to respond in each situation, see MSSQLSERVER_30053.

Informationen zum Fehler MSSQLSERVER_30053Info about the MSSQLSERVER_30053 error

EigenschaftProperty valueValue
ProduktnameProduct Name SQL ServerSQL Server
Ereignis-IDEvent ID 3005330053
EreignisquelleEvent Source MSSQLSERVERMSSQLSERVER
KomponenteComponent SQLEngineSQLEngine
Symbolischer NameSymbolic Name FTXT_QUERY_E_WORDBREAKINGTIMEOUTFTXT_QUERY_E_WORDBREAKINGTIMEOUT
MeldungstextMessage Text Timeout bei der Wörtertrennung für die Volltextabfragezeichenfolge.Word breaking timed out for the full-text query string. Dies kann passieren, wenn die Verarbeitung der Volltextabfragezeichenfolge lange dauert oder eine große Anzahl von Abfragen auf dem Server ausgeführt wird.This can happen if the wordbreaker took a long time to process the full-text query string, or if a large number of queries are running on the server. Führen Sie die Abfrage bei geringerer Auslastung erneut aus.Try running the query again under a lighter load.

ErklärungExplanation

In den folgenden Fällen kann es zu Timeoutfehlern bei der Wörtertrennung kommen:A word-breaking timeout error can occur in the following situations:

  • Die Wörtertrennung für die Abfragesprache ist falsch konfiguriert; z. B. sind die entsprechenden Registrierungseinstellungen falsch.The word breaker for the query language is configured incorrectly; for example, its registry settings are incorrect.

  • Die Wörtertrennung schlägt bei einer bestimmten Abfragezeichenfolge fehl.The word breaker malfunctions for a specific query string.

  • Die Wörtertrennung gibt bei einer bestimmten Abfragezeichenfolge zu viele Daten zurück.The word breaker returns too much data for a specific query string. 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.Excess data is treated as a potential buffer overrun attack, and shuts down the filter daemon process (fdhost.exe), which hosts the word-breaking services.

  • Der Filterdaemonprozess wurde falsch konfiguriert.The filter daemon process configuration is incorrect.

    Zu den häufigsten Konfigurationsproblemen gehören abgelaufene Kennwörter oder Domänenrichtlinien, die eine Anmeldung am Filterdaemonkonto verhindern.The most common configuration problems are password expiration or a domain policy that prevents the filter daemon account from logging on.

  • Auf der Serverinstanz wird eine sehr große Abfragelast ausgeführt, z. B. dauert die Verarbeitung der Volltextabfragezeichenfolge sehr lange, oder es wird eine große Anzahl von Abfragen auf dem Server ausgeführt.A very heavy query workload is running on the server instance; for example, the word-breaker took a long time to process the full-text query string, or a large number of queries are running on the server. Dies ist die wahrscheinliche Ursache.Note that this is the least likely cause.

BenutzeraktionUser Action

Wählen Sie wie folgt die Benutzeraktion aus, die der wahrscheinlichen Ursache des Timeouts entspricht:Select the user action that is appropriate to the probable cause of the timeout, as follows:

Wahrscheinliche UrsacheProbable cause BenutzeraktionUser action
Die Wörtertrennung ist für die Abfragesprache nicht richtig konfiguriert.The word breaker for the query language is configured incorrectly. Wenn Sie die Wörtertrennung eines Drittanbieters verwenden, ist sie möglicherweise auf dem Betriebssystem falsch registriert.If you are using a third-party word breaker it might be incorrectly registered with the operating system. Registrieren Sie die Wörtertrennung in diesem Fall erneut.In this case, re-register the word breaker. Weitere Informationen finden Sie unter Wiederherstellen der von der Suche verwendeten Wörtertrennungen auf die vorherige Version.For more information, see Revert the Word Breakers Used by Search to the Previous Version.
Die Wörtertrennung schlägt bei einer bestimmten Abfragezeichenfolge fehl.The word breaker malfunctions for a specific query string. Wenn die Wörtertrennung von SQL ServerSQL Server unterstützt wird, wenden Sie sich an den Microsoft-Kundenservice und -support.If the word breaker is supported by SQL ServerSQL Server, contact Microsoft Customer Service and Support.
Die Wörtertrennung gibt bei einer bestimmten Abfragezeichenfolge zu viele Daten zurück.The word breaker returns too much data for a specific query string. Wenn die Wörtertrennung von SQL ServerSQL Server unterstützt wird, wenden Sie sich an den Microsoft-Kundenservice und -support.If the word breaker is supported by SQL ServerSQL Server, contact Microsoft Customer Service and Support.
Der Filterdaemonprozess wurde falsch konfiguriert.The filter daemon process configuration is incorrect. Stellen Sie sicher, dass Sie das aktuelle Kennwort verwenden und dass die Anmeldung unter dem Filterdaemonkonto nicht von einer Domänenrichtlinie verhindert wird.Ensure that you are using the current password and that a domain policy is not preventing the filter daemon account from logging on.
Auf der Serverinstanz wird eine große Abfragelast ausgeführt.A very heavy query workload is running on the server instance. Führen Sie die Abfrage bei geringerer Auslastung erneut aus.Try running the query again under a lighter load.

Auswirkungen der aktualisierten WörtertrennungenUnderstand the impact of updated word breakers

Jede Version von SQL ServerSQL Server enthält in der Regel neue Wörtertrennungen, die über bessere linguistische Regeln als frühere Wörtertrennungen verfügen und außerdem genauer sind.Each version of SQL ServerSQL Server typically includes new word breakers that have better linguistic rules and are more accurate than earlier word breakers. Gegebenenfalls verhalten sich die neuen Wörtertrennungen im Vergleich zu den Wörtertrennungen in importierten SQL ServerSQL Server-Volltextindizes etwas anders.Potentially, the new word breakers might behave slightly differently from the word breakers in full-text indexes that were imported from previous versions of SQL ServerSQL Server.

Dies ist wichtig, wenn ein Volltextkatalog importiert wurde, während eine Datenbank auf die neue Version von SQL ServerSQL Serveraktualisiert wurde.This is significant if a full-text catalog was imported when a database was upgraded to the current version of SQL ServerSQL Server. Eine oder mehrere Sprachen, die von den Volltextindizes im Volltextkatalog verwendet werden, sind jetzt ggf. neuen Wörtertrennungen zugeordnet.One or more languages used by the full-text indexes in the full-text catalog might now be associated with new word breakers. Weitere Informationen finden Sie unter Upgrade der Volltextsuche.For more information, see Upgrade Full-Text Search.

Weitere InformationenSee Also

CREATE FULLTEXT INDEX (Transact-SQL) CREATE FULLTEXT INDEX (Transact-SQL)
ALTER FULLTEXT INDEX (Transact-SQL) ALTER FULLTEXT INDEX (Transact-SQL)
Konfigurieren und Verwalten von Stoppwörtern und Stopplisten für VolltextsucheConfigure and Manage Stopwords and Stoplists for Full-Text Search