Delen via


Configureer en beheer & woordonderbrekers en & stemmers voor de zoekfunctie (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 primaire 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.

EXEC sp_help_fulltext_system_components 'wordbreaker';  
GO  

Zie sp_help_fulltext_system_components (Transact-SQL)voor meer opties en 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 Word-onderbrekingen weergeven of wijzigenvoor 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 bestand met de synoniemenlijst van die taal wordt ook gebruikt voor volledige-tekstzoekopdrachten 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 (Transact-SQL)voor meer opties en meer informatie.

Problemen met time-outs bij woordafbreking oplossen

Er kan een time-outfout met betrekking tot woordafbreking optreden in verschillende situaties. voor informatie over deze situaties en hoe u in elke situatie kunt reageren, zie MSSQLSERVER_30053.

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. Houd er rekening mee dat dit de minst waarschijnlijke oorzaak is.

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 deze mogelijk onjuist geregistreerd bij het besturingssysteem. In dit geval moet u de woordonderbreker opnieuw registreren. Zie Word-onderbrekingen die door zoeken worden gebruikt, terugzetten naar de vorige versievoor 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 filterdaemon-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. De nieuwe woordonderbrekers kunnen zich mogelijk iets anders gedragen 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.

Zie ook

CREËER FULLTEXT INDEX (Transact-SQL)
ALTER FULLTEXT INDEX (Transact-SQL)
Stopwoorden en stoplijsten configureren en beheren voor Full-Text zoeken