Lezen in het Engels

Delen via


Full-Text Zoeken upgraden

van toepassing op:SQL ServerAzure SQL Database-

SQL Server werkt zoekopdrachten in volledige tekst bij tijdens de installatie of wanneer u databasebestanden en volledige-tekstcatalogussen bijvoegt, herstelt of kopieert vanuit een eerdere versie van SQL Server.

Een serverexemplaar upgraden

Voor een in-place upgrade wordt een exemplaar van SQL Server naast de oude versie van SQL Server ingesteld en worden gegevens gemigreerd. Als de oude versie van SQL Server zoeken in volledige tekst had geïnstalleerd, wordt automatisch een nieuwe versie van zoeken in volledige tekst geïnstalleerd. Naast elkaar installeren betekent dat elk van de volgende onderdelen bestaat op het exemplaarniveau van SQL Server.

Woordonderbrekers, stemmers en filters
Elk exemplaar gebruikt nu een eigen set woordonderbrekers, stemmers en filters, in plaats van afhankelijk te zijn van de versie van het besturingssysteem voor deze onderdelen. Deze onderdelen zijn ook eenvoudiger te registreren en te configureren op exemplaarniveau. Voor meer informatie, zie Woordonderbrekers en Stemmers configureren en beheren voor zoekopdrachten en Filters configureren en beheren voor zoekopdrachten.

Filter-daemonhost
De daemonhosts voor volledig tekstfilters zijn processen die veilig uitbreidbare externe onderdelen laden en aandrijven die worden gebruikt voor index- en query's, zoals woordonderbrekers, stemmers en filters, zonder de integriteit van de Full-Text Engine in gevaar te brengen. Een serverexemplaar gebruikt een meerdraadig proces voor alle meerdraadige filters en een eendraadig proces voor alle eendraadige filters.

Notitie

SQL Server 2008 (10.0.x) heeft een serviceaccount geïntroduceerd voor de FDHOST Launcher-service (MSSQLFDLauncher). Met deze service worden de serviceaccountgegevens doorgegeven aan de filterdemonhostprocessen van een specifiek exemplaar van SQL Server. Zie Het serviceaccount instellen voor het startprogramma voor volledig tekstfiltervoor meer informatie over het instellen van het serviceaccount.

In SQL Server 2005 (9.x) bevindt elke volledige-tekstindex zich in een volledige-tekstcatalogus die deel uitmaakt van een bestandsgroep, een fysiek pad heeft en wordt behandeld als een databasebestand. In SQL Server 2008 (10.0.x) en latere versies is een catalogus met volledige tekst een logisch of virtueel object dat een groep volledige-tekstindexen bevat. Daarom wordt een nieuwe catalogus met volledige tekst niet behandeld als een databasebestand met een fysiek pad. Tijdens de upgrade van een volledige-tekstcatalogus die gegevensbestanden bevat, wordt er echter een nieuwe bestandsgroep op dezelfde schijf gemaakt. Hierdoor blijft het I/O-gedrag van de oude schijf behouden na de upgrade. Elke volledige-tekstindex uit die catalogus wordt in de nieuwe bestandsgroep geplaatst als het hoofdpad bestaat. Als het oude pad naar de volledige tekstcatalogus ongeldig is, behoudt de upgrade de volledige-tekstindex in dezelfde bestandsgroep als de basistabel of, voor een gepartitioneerde tabel, in de primaire bestandsgroep.

Upgradeopties voor volledige tekst

Wanneer u een SQL Server-exemplaar bijwerken, kunt u met de gebruikersinterface een van de volgende opties voor een upgrade voor volledige tekst kiezen.

importeren
Catalogussen met volledige tekst worden geïmporteerd. Importeren is doorgaans aanzienlijk sneller dan herbouwen. Als u bijvoorbeeld slechts één CPU gebruikt, wordt het importeren ongeveer 10 keer sneller uitgevoerd dan herbouwen. In een geïmporteerde catalogus met volledige tekst worden echter geen nieuwe woordonderbrekers gebruikt die zijn geïnstalleerd met de nieuwste versie van SQL Server. Om consistentie in queryresultaten te garanderen, moeten catalogussen met volledige tekst opnieuw worden opgebouwd.

Notitie

Herbouwen kan worden uitgevoerd in de modus met meerdere threads en als er meer dan 10 CPU's beschikbaar zijn, kan herbouwen sneller worden uitgevoerd dan importeren als u het opnieuw opbouwen toestaat om alle CPU's te gebruiken.

Als er geen catalogus met volledige tekst beschikbaar is, worden de bijbehorende indexen voor volledige tekst opnieuw opgebouwd. Deze optie is alleen beschikbaar voor SQL Server 2005-databases (9.x).

Zie 'Overwegingen voor het kiezen van een Full-Text upgradeoptie' verderop in dit onderwerp voor meer informatie over de impact van het importeren van een volledige-tekstindex.

opnieuw opbouwen
Catalogussen met volledige tekst worden opnieuw opgebouwd met behulp van de nieuwe en verbeterde woordonderbrekers. Het opnieuw opbouwen van indexen kan enige tijd duren en er kan een aanzienlijke hoeveelheid CPU en geheugen nodig zijn na de upgrade.

opnieuw instellen
Catalogussen met volledige tekst worden opnieuw ingesteld. Wanneer u een upgrade uitvoert van SQL Server 2005 (9.x), worden catalogusbestanden met volledige tekst verwijderd, maar blijven de metagegevens voor volledige-tekstcatalogussen en indexen in volledige tekst behouden. Nadat de upgrade is uitgevoerd, worden alle volledige-tekstindexen uitgeschakeld voor het bijhouden van wijzigingen en worden verkenningen niet automatisch gestart. De catalogus blijft leeg totdat u handmatig een volledige populatie uitvraagt, nadat de upgrade is voltooid.

Overwegingen voor het kiezen van een optie voor een upgrade in volledige tekst

Houd rekening met het volgende bij het kiezen van de upgradeoptie voor uw upgrade:

  • Hebt u consistentie in queryresultaten nodig?

    SQL Server installeert nieuwe woordonderbrekers voor gebruik door Full-Text en Semantic Search. De woordonderbrekers worden zowel gebruikt bij het indexeren als bij het uitvoeren van query's. Als u de volledige-tekstcatalogus niet opnieuw opbouwt, zijn uw zoekresultaten mogelijk inconsistent. Als u een query in volledige tekst uitvoert die zoekt naar een woordgroep die anders is verbroken door de woordonderbreker in een eerdere versie van SQL Server en de huidige woordonderbreker, wordt een document of rij met de woordgroep mogelijk niet opgehaald. Dit komt doordat de geïndexeerde woordgroepen zijn verbroken met andere logica dan de query. De oplossing is om de volledige tekstcatalogussen opnieuw te vullen (opnieuw te bouwen) met de nieuwe woordonderbrekers, zodat het gedrag van indextijd en querytijd identiek is. U kunt de optie Opnieuw opbouwen kiezen om dit te bereiken, of u kunt deze handmatig opnieuw opbouwen nadat u de optie Importeren hebt gekozen.

  • Zijn er volledige-tekstindexen gebouwd op kolommen met volledige tekstsleutels?

    Herbouwen voert interne optimalisaties uit die in sommige gevallen de queryprestaties van de geüpgradede full-text index verbeteren. Als u een volledige-tekstcatalogus hebt die volledige-tekstindexen bevat waarvoor de kolom met de volledige tekstsleutel van de basistabel een gegevenstype geheel getal is, zorgt herbouwen voor ideale prestaties van query's met volledige tekst na de upgrade. In dit geval raden we u ten zeerste aan om de optie opnieuw opbouwen te gebruiken.

    Notitie

    Voor indexen in volledige tekst wordt u aangeraden dat de kolom die als volledige tekstsleutel fungeert, een gegevenstype geheel getal is. Zie voor meer informatie over het verbeteren van de prestaties van Full-Text indexen.

  • Wat is de prioriteit voor het online krijgen van uw serverinstantie?

    Tijdens het importeren of opnieuw opbouwen bij een upgrade worden veel CPU-resources verbruikt, wat de upgrade en het online brengen van de rest van de serverinstantie vertraagt. Als het belangrijk is om de serverinstantie zo snel mogelijk online te krijgen en als u bereid bent om na de upgrade een handmatige populatie uit te voeren, is Reset geschikt.

Consistente queryresultaten garanderen na het importeren van een volledige-tekstindex

Als er een volledige-tekstcatalogus is geïmporteerd bij het upgraden van een SQL Server 2005-database (9.x), komt er mogelijk niet overeen tussen de query en de inhoud van de volledige tekstindex vanwege verschillen in het gedrag van de oude en nieuwe woordonderbrekers. Kies in dit geval een van de volgende opties om een totale overeenkomst tussen query's en de inhoud van de volledige tekstindex te garanderen:

  • Bouw de volledige-tekstcatalogus opnieuw op die de volledige-tekstindex bevat (ALTER FULLTEXT CATALOGcatalog_name REBUILD)

  • Voer een VOLLEDIGE POPULATIE uit op de volledige-tekstindex (ALTER FULLTEXT INDEX ON tabelnaam START FULL POPULATION).

Voor meer informatie over woordonderbrekers, zie Word Breakers en Stemmers configureren en beheren voor zoeken.

Noise-Word-bestanden upgraden naar stoplijsten

Wanneer een database wordt bijgewerkt vanuit SQL Server 2005 (9.x), worden de noise-word-bestanden niet meer gebruikt. De oude noise-word-bestanden worden echter opgeslagen in de map FTDATA\ FTNoiseThesaurusBak en u kunt ze later gebruiken bij het bijwerken of compileren van de bijbehorende SQL Server-stoplijsten.

Na een upgrade van SQL Server 2005 (9.x):

  • Als u geen noise-Word-bestanden hebt toegevoegd, gewijzigd of verwijderd in uw installatie van SQL Server 2005 (9.x), moet de systeemstoplijst aan uw behoeften voldoen.

  • Als uw noise-word-bestanden zijn gewijzigd in SQL Server 2005 (9.x), gaan deze wijzigingen verloren tijdens de upgrade. Als u deze updates opnieuw wilt maken, moet u deze wijzigingen handmatig opnieuw maken in de bijbehorende stoplijst. Voor meer informatie, zie ALTER FULLTEXT STOPLIST (Transact-SQL).

  • Als u geen stopwoorden wilt toepassen op uw volledige-tekstindexen (bijvoorbeeld als u uw noise-word-bestanden in uw INSTALLATIE van SQL Server 2005 (9.x) hebt verwijderd of gewist, moet u de stoplijst uitschakelen voor elke bijgewerkte volledige-tekstindex. Voer de volgende Transact-SQL-instructie uit (vervang database door de naam van de bijgewerkte database en tabel door de naam van de tabel):

    Use database;   
    ALTER FULLTEXT INDEX ON table  
       SET STOPLIST OFF;  
    GO  
    

    Met de component STOPLIST OFF wordt het filteren van stopwoorden verwijderd en wordt een populatie van de tabel geactiveerd, zonder dat er woorden worden gefilterd die als ruis worden beschouwd.

Back-up maken van en geïmporteerde catalogussen met volledige tekst

Voor catalogi met volledige tekst die tijdens de upgrade opnieuw worden opgebouwd of opnieuw worden ingesteld (en voor nieuwe volledige-tekstcatalogussen), is de fulltext-catalogus een logisch concept en bevindt zich niet in een bestandsgroep. Als u een back-up wilt maken van een catalogus met volledige tekst, moet u daarom elke bestandsgroep identificeren die een volledige-tekstindex van de catalogus bevat en een voor één back-up van de catalogus maken. Zie Back-up maken en herstellen van Full-Text catalogi en indexenvoor meer informatie.

Voor catalogi met volledige tekst die zijn geïmporteerd uit SQL Server 2005 (9.x), is de volledige tekstcatalogus nog steeds een databasebestand in een eigen bestandsgroep. Het back-upproces van SQL Server 2005 (9.x) voor volledige-tekstcatalogussen is nog steeds van toepassing, behalve dat de MSFTESQL-service niet bestaat in SQL Server. Voor informatie over het SQL Server 2005-proces (9.x) zie Back-up maken en herstellen van Full-Text catalogi in SQL Server 2005 Books Online.

Volledige-tekstindexen migreren bij het upgraden van een database

Databasebestanden en volledige-tekstcatalogussen van een eerdere versie van SQL Server kunnen worden bijgewerkt naar een bestaand exemplaar door de wizard Database bijvoegen, herstellen of kopiëren te gebruiken. SQL Server 2005 (9.x) volledige-tekstindexen, indien aanwezig, worden geïmporteerd, opnieuw ingesteld of opnieuw opgebouwd. De servereigenschap upgrade_option bepaalt welke upgradeoptie voor volledige tekst de serverexemplaar gebruikt tijdens deze database-upgrades.

Nadat u een SQL Server 2005-database (9.x) hebt gekoppeld, hersteld of gekopieerd, wordt de database onmiddellijk beschikbaar en wordt deze vervolgens automatisch bijgewerkt. Afhankelijk van de hoeveelheid gegevens die wordt geïndexeerd, kan het importeren enkele uren duren en kan het opnieuw samenstellen tot tien keer langer duren. Houd er ook rekening mee dat wanneer de upgradeoptie is ingesteld op importeren, als er geen volledige tekstcatalogus beschikbaar is, de bijbehorende indexen voor volledige tekst opnieuw worden opgebouwd.

Om het upgradegedrag voor volledige tekst op een serverexemplaar te wijzigen

Overwegingen voor het herstellen van een SQL Server 2005 (9.x) Full-Text-catalogus

Een methode voor het upgraden van volledige tekstgegevens van een SQL Server 2005-database (9.x) is het herstellen van een volledige databaseback-up naar een nieuwer exemplaar van SQL Server.

Tijdens het importeren van een volledige tekstcatalogus van SQL Server 2005 (9.x), kunt u een back-up maken van de database en het catalogusbestand en deze herstellen. Het gedrag is hetzelfde als in SQL Server 2005 (9.x):

  • De volledige databaseback-up bevat de volledige tekstcatalogus. Als u naar de volledige tekstcatalogus wilt verwijzen, gebruikt u de naam van het SQL Server 2005-bestand (9.x), sysft_+catalogusnaam.

  • Als de catalogus met volledige tekst offline is, mislukt de back-up.

Zie Back-up maken en herstellen van Full-Text catalogi van SQL Server 2005 (9.x) voor meer informatie over het maken van back-ups en het herstellen van Full-Text catalogi en back-up en Full-Text catalogiin SQL Server 2005 (9.x) Books Online.

Wanneer de database wordt hersteld op een nieuwer exemplaar van SQL Server, wordt er een nieuw databasebestand gemaakt voor de volledige tekstcatalogus. De standaardnaam van dit bestand is ftrow_catalogusnaam.ndf. Als bijvoorbeeld de catalogusnaam is cat1, zou de standaardnaam van het SQL Server-databasebestand ftrow_cat1.ndfzijn. Maar als de standaardnaam al in de doelmap wordt gebruikt, krijgt het nieuwe databasebestand de naam ftrow_catalogusnaam{GUID-}.ndf, waarbij GUID- de Globally Unique Identifier van het nieuwe bestand is.

Nadat de catalogi zijn geïmporteerd, worden de sys.database_files en sys.master_filebijgewerkt om de catalogusvermeldingen te verwijderen en wordt het pad kolom in sys.fulltext_catalogs ingesteld op NULL.

Een back-up van een database maken

Een back-up van een database herstellen

Voorbeeld

In het volgende voorbeeld wordt de MOVE-component in de instructie RESTORE gebruikt om een SQL Server 2005-database (9.x) met de naam ftdb1te herstellen. De SQL Server 2005-database-, logboek- en catalogusbestanden worden verplaatst naar nieuwe locaties op het SQL Server-serverexemplaar, als volgt:

  • Het databasebestand, ftdb1.mdf, wordt verplaatst naar C:\Program Files\Microsoft SQL Server\MSSQL.1MSSQL13.MSSQLSERVER\MSSQL\DATA\ftdb1.mdf.

  • Het logboekbestand, ftdb1_log.ldf, wordt verplaatst naar een logboekmap op uw logboekschijfstation, log_drive:\log_directory\ftdb1_log.ldf.

  • De catalogusbestanden die overeenkomen met de sysft_cat90 catalogus worden verplaatst naar C:\temp. Nadat de volledige-tekstindexen zijn geïmporteerd, worden ze automatisch in een databasebestand geplaatst, C:\ftrow_sysft_cat90.ndf en wordt de C:\temp verwijderd.

RESTORE DATABASE [ftdb1] FROM  DISK = N'C:\temp\ftdb1.bak' WITH  FILE = 1,  
   MOVE N'ftdb1' TO N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\ftdb1.mdf',  
    MOVE N'ftdb1_log' TO N'log_drive:\log_directory\ftdb1_log.ldf',  
    MOVE N'sysft_cat90' TO N'C:\temp';  

Een SQL Server 2005-database koppelen

In SQL Server 2008 (10.0.x) en latere versies is een catalogus met volledige tekst een logisch concept dat verwijst naar een groep indexen in volledige tekst. De catalogus met volledige tekst is een virtueel object dat geen deel uitmaakt van een bestandsgroep. Wanneer u echter een SQL Server 2005-database (9.x) koppelt die volledige-tekstcatalogusbestanden bevat aan een nieuwer SQL Server-serverexemplaren, worden de catalogusbestanden gekoppeld vanaf hun vorige locatie, samen met de andere databasebestanden, hetzelfde als in SQL Server 2005 (9.x).

De status van elke gekoppelde volledige-tekstcatalogus op SQL Server is hetzelfde als wanneer de database is losgekoppeld van SQL Server 2005 (9.x). Als een volledige-tekstindexpopulatie is onderbroken door de loskoppelbewerking, wordt de populatie hervat op SQL Server en wordt de volledige-tekstindex beschikbaar voor zoeken in volledige tekst.

Als SQL Server geen catalogusbestand met volledige tekst kan vinden of als het bestand met volledige tekst is verplaatst tijdens de bijvoegbewerking zonder een nieuwe locatie op te geven, is het gedrag afhankelijk van de geselecteerde optie voor het bijwerken van volledige tekst. Als de optie voor het bijwerken van volledige tekst is Import of Rebuild, wordt de bijgevoegde catalogus met volledige tekst opnieuw opgebouwd. Als de optie voor het bijwerken van volledige tekst is Reset, wordt de bijgevoegde catalogus met volledige tekst opnieuw ingesteld.

Zie voor meer informatie over het loskoppelen en koppelen van een database database loskoppelen en koppelen (SQL Server), CREATE DATABASE (SQL Server Transact-SQL), sp_attach_dben sp_detach_db (Transact-SQL).

Zie ook

Aan de slag met Full-Text Search-
Word Breakers en Stemmers configureren en beheren voor zoekopdrachten
Filters configureren en beheren voor zoek-