Delen via


Woordonderbrekers en stemmers configureren en beheren voor zoeken (SQL Server)

van toepassing op:SQL ServerAzure SQL Database-

Woordafbrekers en stemmers voeren taalkundige analyses uit op alle geïndexeerde volledige tekstgegevens. Taalkundige analyse doet de volgende twee dingen:

  • zoek woordgrenzen (woordafbreking). De woordonderbreker afzonderlijke woorden identificeert door te bepalen waar woordgrenzen bestaan op basis van de lexicale regels van de taal. Elk woord (ook wel een tokengenoemd) wordt in de volledige-tekstindex ingevoegd met behulp van een gecomprimeerde weergave om de grootte te verkleinen.

  • nl-NL: Werkwoorden vervoegen (afleiding). De stemmer genereert inflectionele vormen van een bepaald woord op basis van de regels van die taal (bijvoorbeeld "running", "ran" en "runner" zijn verschillende vormen van het woord "run").

Woordonderbrekers en stemmers zijn taalspecifiek

Woordonderbrekers en stemmers zijn taalspecifiek en de regels voor taalkundige analyse verschillen voor verschillende talen. Taalspecifieke woordonderbrekers maken de resulterende termen nauwkeuriger voor die taal.

Als u de woordonderbrekers en stemmers wilt gebruiken die zijn opgegeven voor alle talen die worden ondersteund door SQL Server, hoeft u doorgaans geen actie te ondernemen.

  • Als er een woordonderbreker is voor de taalfamilie, maar niet voor de specifieke subtaal, wordt de belangrijkste taal gebruikt. De Franse woordonderbreker wordt bijvoorbeeld gebruikt om tekst te verwerken die Frans Canadees is.

  • Als er geen woordonderbreker beschikbaar is voor een bepaalde taal, wordt de neutrale woordonderbreker gebruikt. Met de neutrale woordonderbreker worden woorden verbroken bij neutrale tekens, zoals spaties en leestekens.

De lijst met ondersteunde talen ophalen

Gebruik de volgende Transact-SQL-instructie om de lijst met talen weer te geven die worden ondersteund door SQL Server Full-Text Search. De aanwezigheid van een taal in deze lijst geeft aan dat woordonderbrekers zijn geregistreerd voor de taal.

SELECT *
FROM sys.fulltext_languages;

De lijst met geregistreerde woordonderbrekers ophalen

Als Full-Text Zoeken de woordonderbrekers voor een taal wilt gebruiken, moeten ze worden geregistreerd. Voor geregistreerde woordafbrekers zijn bijbehorende taalkundige bronnen - stemmers, ruiswoorden (stopwoorden) en synoniemenlijstbestanden - ook beschikbaar voor volledige tekst indexering en querybewerkingen.

Gebruik de volgende instructie om de lijst met geregistreerde woordonderbreker-componenten weer te geven.

EXECUTE sp_help_fulltext_system_components 'wordbreaker';
GO

Zie sp_help_fulltext_system_components voor meer informatie.

Als u een woordonderbreker toevoegt of verwijdert

Als u een woordonderbreker toevoegt, verwijdert of wijzigt, moet u de lijst met Landinstellingen-id's (LCID's) van Microsoft Windows vernieuwen die worden ondersteund voor indexering en query's in volledige tekst. Zie Geregistreerde filters en woordonderbrekers weergeven of wijzigen voor meer informatie.

De standaardtaaloptie voor volledige tekst instellen

Voor een gelokaliseerde versie van SQL Server stelt SQL Server Setup de standaardtaal voor volledige tekst optie in op de taal van de server als er een geschikte overeenkomst bestaat. Voor een niet-gelokaliseerde versie van SQL Server is de standaardtaal voor volledige tekst optie Engels.

Wanneer u een index voor volledige tekst maakt of wijzigt, kunt u een andere taal opgeven voor elke geïndexeerde kolom in volledige tekst. Als er geen taal is opgegeven voor een kolom, is de standaardwaarde van de configuratieoptie standaardtaal voor volledige tekst.

Notitie

Alle kolommen die in één queryfunctiecomponent voor volledige tekst worden vermeld, moeten dezelfde taal gebruiken, tenzij de optie TAAL is opgegeven in de query. De taal die wordt gebruikt voor de geïndexeerde kolom met volledige tekst die wordt opgevraagd, bepaalt de taalkundige analyse die wordt uitgevoerd op argumenten van de querypredicaten voor volledige tekst (CONTAINS en FREETEXT) en functies (CONTAINSTABLE- en FREETEXTTABLE-).

De taal voor een geïndexeerde kolom kiezen

Bij het maken van een volledige-tekstindex wordt u aangeraden een taal op te geven voor elke geïndexeerde kolom. Als een taal niet is opgegeven voor een kolom, wordt de standaardtaal van het systeem gebruikt. De taal van een kolom bepaalt welke woordonderbreker en stemmer worden gebruikt voor het indexeren van die kolom. Het synoniemenlijstbestand van die taal wordt ook gebruikt door volledige-tekstquery's op de kolom.

Er zijn een aantal dingen waarmee u rekening moet houden bij het kiezen van de kolomtaal voor het maken van een volledige-tekstindex. Deze overwegingen hebben betrekking op de wijze waarop uw tekst wordt getokeniseerd en vervolgens geïndexeerd door Full-Text Engine. Zie Een taal kiezen bij het maken van een Full-Text Indexvoor meer informatie.

Voer de volgende instructie uit om de woordonderbrekingstaal van specifieke kolommen weer te geven.

SELECT language_id AS 'LCID'
FROM sys.fulltext_index_columns;

Zie sys.fulltext_index_columns voor meer informatie.

Deel een overzicht met time-outfouten bij het afbreken van woorden oplossen

Er kan in verschillende situaties een time-outfout optreden bij het afbreken van woorden. Zie MSSQLSERVER_30053 voor informatie over deze situaties en hoe u kunt reageren in elke situatie.

Informatie over de fout MSSQLSERVER_30053

Eigenschap Waarde
Productnaam SQL Server
Gebeurtenis-id 30053
Gebeurtenisbron MSSQLSERVER
Bestanddeel SQLEngine
Symbolische naam FTXT_QUERY_E_WORDBREAKINGTIMEOUT
Berichttekst De woordafbreking is vertraagd vanwege een time-out bij de volledige-tekst querytekenreeks. Dit kan gebeuren als de woordafbreker veel tijd nodig heeft om de tekenreeks voor volledige tekstquery's te verwerken, of als er een groot aantal query's op de server wordt uitgevoerd. Voer de query opnieuw uit onder een lichtere belasting.

Uitleg

In de volgende situaties kan er een woordbrekende timeoutfout optreden:

  • De woordonderbreker voor de querytaal is onjuist geconfigureerd; De registerinstellingen zijn bijvoorbeeld onjuist.

  • De woordonderbreker werkt niet goed voor een specifieke querytekenreeks.

  • De woordonderbreker retourneert te veel gegevens voor een specifieke querytekenreeks. Overtollige gegevens worden behandeld als een mogelijke bufferoverschrijdingsaanval, en het filterdaemonproces (fdhost.exe), dat de woordbrekende diensten host, wordt gesloten.

  • De configuratie van het filterdemonproces is onjuist.

    De meest voorkomende configuratieproblemen zijn het verlopen van wachtwoorden of een domeinbeleid dat voorkomt dat het filter daemon-account zich aanmeldt.

  • Een zeer zware queryworkload wordt uitgevoerd op het serverexemplaar; het duurt bijvoorbeeld lang voordat de volledige tekstquery is verwerkt, of er wordt een groot aantal query's uitgevoerd op de server. Dit is de minst waarschijnlijke oorzaak.

Gebruikersactie

Selecteer als volgt de gebruikersactie die geschikt is voor de waarschijnlijke oorzaak van de time-out:

Waarschijnlijke oorzaak Gebruikersactie
De woordonderbreker voor de querytaal is onjuist geconfigureerd. Als u een woordonderbreker van derden gebruikt, is het mogelijk onjuist geregistreerd bij het besturingssysteem. In dit geval moet u de woordonderbreker opnieuw registreren. Zie Woordonderbrekers die door Search worden gebruikt voor eerdere versies (SQL Server Search) terugzetten voor meer informatie.
De woordonderbreker werkt niet goed voor een specifieke querytekenreeks. Als de woordonderbreker wordt ondersteund door SQL Server, neemt u contact op met de klantenservice en ondersteuning van Microsoft.
De woordonderbreker retourneert te veel gegevens voor een specifieke querytekenreeks. Als de woordonderbreker wordt ondersteund door SQL Server, neemt u contact op met de klantenservice en ondersteuning van Microsoft.
De configuratie van het filterdemonproces is onjuist. Zorg ervoor dat u het huidige wachtwoord gebruikt en dat een domeinbeleid niet verhindert dat het filter daemon-account zich aanmeldt.
Een zeer zware query-werkbelasting wordt uitgevoerd op het serverexemplaar. Voer de query opnieuw uit onder een lichtere belasting.

Inzicht in de impact van bijgewerkte woordonderbrekers

Elke versie van SQL Server bevat doorgaans nieuwe woordonderbrekers met betere taalkundige regels en zijn nauwkeuriger dan eerdere woordonderbrekers. Mogelijk gedragen de nieuwe woordonderbrekers zich anders dan de woordonderbrekers in indexen in volledige tekst die zijn geïmporteerd uit eerdere versies van SQL Server.

Dit is belangrijk als een catalogus met volledige tekst is geïmporteerd toen een database werd bijgewerkt naar de huidige versie van SQL Server. Een of meer talen die door de full-text indexen in de volledige tekstcatalogus worden gebruikt, zijn mogelijk nu gekoppeld aan nieuwe woordonderbrekers. Voor meer informatie, zie Upgrade Full-Text Search.