Configureer en beheer stopwoorden en stoplijsten voor Full-Text Zoekopdrachten

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Om te voorkomen dat een full-text index opgeblazen raakt, heeft de SQL Server Database Engine een mechanisme dat veelvoorkomende strings verwijdert die de zoekopdracht niet helpen. Deze verworpen tekenreeksen worden stopwoordengenoemd. Tijdens het maken van de index laat de Full-Text Engine stopwords weg uit de volledige tekstindex. Dit betekent dat full-textzoekopdrachten geen stopwoorden doorzoeken.

Termijn Description
Stopwoorden Een stopwoord kan een woord zijn met betekenis in een specifieke taal. In de Engelse taal worden bijvoorbeeld woorden als a, and, , isen the buiten de volledige tekstindex gelaten omdat bekend is dat ze nutteloos zijn voor een zoekopdracht. Een stopwoord kan ook een token zijn zonder taalkundige betekenis.
Stoplijsten Stopwords worden beheerd in databases door gebruik te maken van objecten die stoplists worden genoemd. Een stoplijst is een lijst met stopwoorden die, wanneer gekoppeld aan een index in volledige tekst, wordt toegepast op query's in volledige tekst op die index.

Een bestaande stoplijst gebruiken

U kunt een bestaande stoplijst op de volgende manieren gebruiken:

  • Gebruik de door het systeem geleverde stoplijst in de database. De Database Engine wordt geleverd met een systeemstoplijst die de meest gebruikte stopwoorden bevat voor elke ondersteunde taal, dat wil zeggen voor elke taal die standaard aan bepaalde woordbrekers is gekoppeld. U kunt de systeemstoplijst kopiëren en uw kopie aanpassen door stopwoorden toe te voegen en te verwijderen.

    De systeemstoplijst is geïnstalleerd in de Resource Database.

  • Gebruik een bestaande aangepaste stoplijst uit een andere database in de huidige serverinstantie en voeg stopwoorden toe of verwijder ze indien nodig.

Een nieuwe stoplijst maken

Je kunt een stoplijst maken door Transact-SQL (T-SQL) of SQL Server Management Studio (SSMS) te gebruiken.

Een nieuwe stoplijst maken met Transact-SQL

Gebruik CREATE FULLTEXT STOPLIST.

Maak een nieuwe stoplijst aan met SQL Server Management Studio

  1. Vouw in Objectverkenner de server uit.

  2. Vouw Databasesuit en vouw vervolgens de database uit waarin u de volledige tekststoplijst wilt maken.

  3. Open Storage en klik met de rechtermuisknop op Full-Text Stoplists.

  4. Selecteer Nieuwe Full-Text Stoplijst.

  5. Voer de naam van de nieuwe stoplijst in.

  6. Geef desgewenst iemand anders op als de eigenaar van de stoplijst.

  7. Selecteer een van de volgende opties voor het maken van de stoplijst:

    • Een lege stoplijst maken

    • Maken vanuit de stoplijst van het systeem

    • Een bestaande stoplijst met volledige tekst maken

    Voor meer informatie, zie Nieuwe Full-Text Stoplijst (Algemene Pagina).

  8. Selecteer OK.

Een stoplijst gebruiken in query's in volledige tekst

Als u een stoplijst in query's wilt gebruiken, moet u deze koppelen aan een index in volledige tekst. U kunt een stoplijst koppelen aan een volledige-tekstindex wanneer u de index maakt of u kunt de index later wijzigen om een stoplijst toe te voegen.

Task Methode
Maak een full-text index en koppel deze aan een stoplist Gebruik CREATE FULLTEXT INDEX.
Een stoplijst aan een bestaande volledige-tekstindex koppelen of ontkoppelen Gebruik ALTER FULLTEXT INDEX.

De stopwoorden in een stoplijst wijzigen

Je kunt de stopwoorden in een stoplijst aanpassen door gebruik te maken van Transact-SQL (T-SQL) of SQL Server Management Studio (SSMS).

Stopwords toevoegen aan of verwijderen uit een stoplijst met Transact-SQL

Gebruik ALTER FULLTEXT STOPLIST.

Voeg stopwoorden toe of verwijder ze uit een stoplijst met SQL Server Management Studio

  1. Vouw in Objectverkenner de server uit.

  2. Vouw Databasesuit en vouw vervolgens de database uit.

  3. Vouw Storage uit en selecteer Volledige Tekststoplijsten.

  4. Klik met de rechtermuisknop op de stoplijst waarvan u de eigenschappen wilt wijzigen en selecteer Eigenschappen.

  5. In het dialoogvenster Full-Text Stoplijsteigenschappen:

    1. Selecteer in de keuzelijst actie een van de volgende acties: stopwoord toevoegen, stopword verwijderen, Alle stopwoordenverwijderen of stoplijst wissen.

    2. Als het tekstvak Stopword is ingeschakeld voor de geselecteerde actie, voert u één stopwoord in. Dit stopwoord moet uniek zijn. Het kan niet al in deze stoplijst staan voor de taal die je kiest.

    3. Als de volledige teksttaal keuzelijst is ingeschakeld voor de geselecteerde actie, selecteert u een taal.

  6. Selecteer OK.

Stoplijsten en hun gebruik beheren

Gebruik de volgende methoden om stoplijsten te bekijken en te beheren.

Task Methode
Alle stopwoorden in een stoplijst weergeven Gebruik sys.fulltext_stopwords.
Vind informatie over alle stoplijsten in de huidige database Gebruik sys.fulltext_stoplists en sys.fulltext_stopwords.
Bekijk het tokenisatieresultaat van de combinatie van een woordafbreker, synoniemenlijst en stoplijst. Gebruik sys.dm_fts_parser.
Een foutbericht onderdrukken als stopwords ertoe leiden dat een Booleaanse bewerking op een query in volledige tekst mislukt Gebruik Serverconfiguratie: ruiswoorden transformeren.

Meer informatie over de positie van stopwoorden

Hoewel de volledige tekstindex de opname van stopwoorden negeert, houdt hij wel rekening met hun positie. Beschouw bijvoorbeeld de uitdrukking, Instructions are applicable to these Adventure Works Cycles models. In de volgende tabel ziet u de positie van de woorden in de zin:

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

De stopwoorden are, to, en these die zich op posities 2, 4 en 5 bevinden, worden weggelaten in de volledige tekstindex. Hun positionele informatie wordt echter gehandhaafd, waardoor de positie van de andere woorden niet wordt beïnvloed.

Upgrade van ruiswoorden vanuit SQL Server 2005

SQL Server 2005 (9.x) ruiswoorden worden vervangen door stopwoorden. Wanneer een database wordt bijgewerkt vanuit SQL Server 2005 (9.x), worden de noise-word-bestanden niet meer gebruikt. De ruiswoordbestanden worden echter opgeslagen in de FTDATA\FTNoiseThesaurusBak map, en je kunt ze later gebruiken wanneer je de bijbehorende stoplijsten bijwerkt of bouwt. Zie Upgrade Full-Text Searchvoor meer informatie over het upgraden van noise-word-bestanden naar stoplists.