Upgrade vyhledávání Full-Text
platí pro:SQL Server
azure SQL Database
SQL Server upgraduje fulltextové vyhledávání během instalace nebo při připojování, obnovení nebo kopírování databázových souborů a fulltextových katalogů ze starší verze SQL Serveru.
Proveďte upgrade instance serveru
U místního upgradu je instance SQL Serveru nastavená souběžně se starou verzí SQL Serveru a data se migrují. Pokud byla nainstalovaná stará verze SQL Serveru fulltextové vyhledávání, nainstaluje se automaticky nová verze fulltextového vyhledávání. Souběžná instalace znamená, že každá z následujících komponent existuje na úrovni instance SQL Serveru.
Děliče slov, stemmers a filtry
Každá instance teď používá vlastní sadu segmentátorů slov, stemmerů a filtrů místo toho, aby se spoléhala na verzi operačního systému těchto komponent. Tyto komponenty se také snadněji registrují a konfigurují na úrovni jednotlivých instancí. Další informace najdete v tématu Konfigurace a správa děličů slov a stemmerů pro vyhledávání a Konfigurace a správa filtrů pro vyhledávání.
Filtr hostitelského procesu
Hostitelé démonů plnotextového filtru jsou procesy, které bezpečně načítají a řídí rozšiřitelné externí komponenty používané pro indexaci a dotazování, jako jsou segmentátory slov, stemmery a filtry, aniž by došlo k narušení integrity modulu Full-Text. Instance serveru používá vícevláknový proces pro všechny vícevláknové filtry a proces s jedním vláknem pro všechny filtry s jedním vláknem.
Poznámka
SQL Server 2008 (10.0.x) zavedl účet služby pro službu FDHOST Launcher (MSSQLFDLauncher). Tato služba rozšíří informace o účtu služby do procesů hostitele démona filtru konkrétní instance SQL Serveru. Informace o nastavení účtu služby naleznete v tématu Nastavení účtu služby pro spouštěč démonu full-textového filtru.
V systému SQL Server 2005 (9.x) se každý fulltextový index nachází v fulltextovém katalogu, který patří do skupiny souborů, má fyzickou cestu a je považován za databázový soubor. V systému SQL Server 2008 (10.0.x) a novějších verzích je fulltextový katalog logický nebo virtuální objekt, který obsahuje skupinu fulltextových indexů. Nový fulltextový katalog proto není považován za databázový soubor s fyzickou cestou. Během upgradu jakéhokoli fulltextového katalogu, který obsahuje datové soubory, se však na stejném disku vytvoří nová skupina souborů. Tím se po upgradu zachová původní chování vstupně-výstupních operací disku. Všechny fulltextové indexy z daného katalogu se umístí do nové skupiny souborů, pokud existuje kořenová cesta. Pokud je stará cesta k fulltextovému katalogu neplatná, upgrade zachová fulltextový index ve stejné skupině souborů jako základní tabulka nebo, v případě dělené tabulky, v primární skupině souborů.
Možnosti upgradu fulltextového vyhledávání
Uživatelské rozhraní při upgradu instance SQL Serveru vám umožňuje zvolit jednu z následujících možností upgradu fulltextového vyhledávání.
importu
Importují se fulltextové katalogy. Import je obvykle výrazně rychlejší než opětovné sestavení. Například při použití pouze jednoho procesoru se import spouští přibližně 10krát rychleji než opětovné sestavení. Importovaný fulltextový katalog ale nepoužívá nové nástroje pro dělení slov nainstalované s nejnovější verzí SQL Serveru. Aby se zajistilo konzistenci výsledků dotazů, musí být znovu sestaveny fulltextové katalogy.
Poznámka
Opětovné sestavení může běžet v režimu s více vlákny a pokud je k dispozici více než 10 procesorů, může opětovné sestavení běžet rychleji než import, pokud povolíte opětovné sestavení používat všechny procesory.
Pokud není k dispozici fulltextový katalog, přidružené fulltextové indexy se znovu sestaví. Tato možnost je dostupná pouze pro databáze SYSTÉMU SQL Server 2005 (9.x).
Informace o dopadu importu fulltextového indexu najdete v části Důležité informace o volbě možnosti upgradu Full-Text dále v tomto tématu.
opětovné sestavení
Fulltextové katalogy se znovu sestavují pomocí nových a vylepšených nástrojů pro dělení slov. Opětovné sestavení indexů může nějakou dobu trvat a po upgradu může být vyžadováno značné množství procesoru a paměti.
resetování
Fulltextové katalogy se resetují. Při upgradu z SQL Serveru 2005 (9.x) se odeberou soubory fulltextového katalogu, ale metadata pro fulltextové katalogy a fulltextové indexy se zachovají. Po provedení upgradu jsou všechny fulltextové indexy zakázány pro sledování změn a procházení se nespouští automaticky. Katalog zůstane prázdný, dokud po dokončení upgradu ručně nevydáte úplnou populaci.
Úvahy o výběru možnosti upgradu fulltextového systému
Při výběru možnosti upgradu zvažte následující:
Vyžadujete konzistenci ve výsledcích dotazu?
SQL Server nainstaluje nové nástroje pro dělení slov pro použití pomocí Full-Text a sémantického vyhledávání. Rozkladače slov se používají jak při indexování, tak při dotazování. Pokud znovu neskonstruujete fulltextové katalogy, může být výsledky hledání nekonzistentní. Pokud zadáte fulltextový dotaz, který hledá frázi, jež je v dřívější verzi SQL Serveru a aktuální verzi zpracována slovním rozkladačem odlišně, může se stát, že dokument nebo řádek obsahující tuto frázi nebude načten. Důvodem je to, že indexované fráze byly přerušeny pomocí jiné logiky než dotaz používá. Řešením je znovu vyplnit (znovu sestavit) fulltextové katalogy s novými funkcemi pro dělení slov tak, aby čas indexu a čas dotazu byly stejné. Můžete zvolit možnost Znovu sestavit, abyste toho dosáhli, nebo můžete po výběru možnosti Import znovu sestavit ručně.
Byly nějaké fulltextové indexy založené na celočíselných sloupcích s fulltextovými klíči?
Opětovné sestavení provádí interní optimalizace, které mohou v některých případech zlepšit výkon dotazů u upgradovaného fulltextového indexu. Konkrétně pokud máte fulltextové katalogy, které obsahují fulltextové indexy, pro které je celotextový klíčový sloupec základní tabulky celočíselný datový typ, opětovné sestavení dosáhne ideálního výkonu fulltextových dotazů po upgradu. V tomto případě důrazně doporučujeme použít možnost Obnovit.
Poznámka
U fulltextových indexů doporučujeme, aby sloupec, který slouží jako fulltextový klíč, byl celočíselný datový typ. Další informace naleznete v tématu zlepšení výkonu indexů Full-Text.
Jaká je priorita pro uvedení instance serveru online?
Import nebo opětovné sestavení během upgradu spotřebovává mnoho zdrojů CPU, což zpožďuje upgrade a spuštění zbytku instance serveru online. Pokud je důležité zprovoznit instanci serveru co nejdříve a pokud jste ochotni po upgradu spustit ruční naplnění, je vhodné použít Reset.
Zajištění konzistentních výsledků dotazu po importu fulltextového indexu
Pokud byl při upgradu databáze SYSTÉMU SQL Server 2005 (9.x) importován fulltextový katalog, může dojít k neshodě mezi dotazem a obsahem fulltextového indexu kvůli rozdílům v chování starých a nových dělení slov. Pokud chcete v tomto případě zaručit celkovou shodu mezi dotazy a obsahem fulltextového indexu, zvolte jednu z následujících možností:
Znovu sestavte katalog, který obsahuje fulltextový index (ALTER FULLTEXT CATALOGcatalog_name REBUILD)
Začněte FULL POPULATION na fulltextovém indexu (ALTER FULLTEXT INDEX ON table_name START FULL POPULATION).
Další informace o rozdělovačích slov najdete v tématu Konfigurace a správa rozdělovačů slov a odvozených tvarů pro vyhledávání.
Vylepšení souborů šumových slov na seznamy stopslov
Když je databáze aktualizována z SQL Serveru 2005 (9.x), soubory s bezvýznamnými slovy se už nepoužívají. Staré šumové soubory jsou však uloženy ve složce FTDATA\ FTNoiseThesaurusBak
a můžete je později použít při aktualizaci nebo sestavování odpovídajících seznamů stop SQL Serveru.
Po upgradu z SQL Serveru 2005 (9.x):
Pokud jste do instalace SQL Serveru 2005 (9.x) nikdy nepřidali, neupravili ani neodstranili žádná bezvýznamová slova, měl by systémový stoplist vyhovovat vašim potřebám.
Pokud byly vaše soubory se šumovými slovy změněny v SQL Serveru 2005 (9.x), tyto úpravy se při upgradu ztratí. Chcete-li tyto aktualizace znovu vytvořit, musíte tyto změny ručně znovu vytvořit v příslušném seznamu stop. Další informace viz ALTER FULLTEXT STOPLIST (Transact-SQL).
Pokud nechcete používat žádná zástupná slova pro fulltextové indexy (například pokud jste odstranili nebo vymazali soubory s šumovými slovy v instalaci SQL Serveru 2005 (9.x)), musíte vypnout seznam stopslov pro každý upgradovaný fulltextový index. Spusťte následující příkaz Transact-SQL (nahrazení databáze názvem upgradované databáze a tabulky názvem tabulky):
Use database; ALTER FULLTEXT INDEX ON table SET STOPLIST OFF; GO
Klauzule STOPLIST OFF odebere filtrování stop-slov a aktivuje naplnění tabulky, aniž by filtrovala jakákoli slova považovaná za šum.
Zálohování a import fulltextových katalogů
Pro fulltextové katalogy, které jsou znovu sestaveny nebo resetovány během upgradu (a pro nové fulltextové katalogy), je fulltextový katalog logický koncept a nenachází se ve skupině souborů. Proto pokud chcete zálohovat fulltextový katalog, musíte identifikovat každou skupinu souborů, která obsahuje fulltextový index katalogu, a každý z nich zálohovat, jeden po druhém. Další informace naleznete v tématu Zálohování a obnovení Full-Text katalogů a indexů.
Pro fulltextové katalogy, které byly importovány z SQL Serveru 2005 (9.x), je fulltextový katalog stále soubor databáze ve vlastní skupině souborů. Proces zálohování SQL Serveru 2005 (9.x) pro fulltextové katalogy stále platí s tím rozdílem, že služba MSFTESQL na SQL Serveru neexistuje. Informace o procesu SQL Server 2005 (9.x) naleznete v tématu Zálohování a obnovení katalogů Full-Text v aplikaci SQL Server 2005 Books Online.
Migrace fulltextových indexů při upgradu databáze
Databázové soubory a fulltextové katalogy z předchozí verze SQL Serveru je možné upgradovat na existující instanci pomocí připojení, obnovení nebo průvodce Kopírování databáze. Fulltextové indexy SQL Serveru 2005 (9.x), pokud existují, se buď importují, resetují nebo znovu sestavují. Vlastnost serveru upgrade_option určuje, kterou možnost fulltextového upgradu instance serveru používá během těchto upgradů databáze.
Po připojení, obnovení nebo zkopírování jakékoli databáze SQL Serveru 2005 (9.x) novější instance bude databáze k dispozici okamžitě a pak se automaticky upgraduje. V závislosti na množství indexovaných dat může import trvat několik hodin a opětovné sestavení může trvat až desetkrát déle. Všimněte si také, že pokud je možnost upgradu nastavena na import a není k dispozici fulltextový katalog, přidružené fulltextové indexy se znovu sestaví.
Změna chování při upgradu fulltextu na instanci serveru
Transact-SQL: Použijte akci upgrade_option pro sp_fulltext_service
aplikace SQL Server Management Studio: Použijte možnost upgradu Full-Text dialogového okna vlastnosti serveru . Další informace naleznete v tématu Správa a monitorování Full-Text Hledání instance serveru.
Důležité informace o obnovení katalogu SQL Serveru 2005 (9.x) Full-Text.
Jednou z metod upgradu fulltextových dat z databáze SQL Serveru 2005 (9.x) je obnovení úplné zálohy databáze na novější instanci SQL Serveru.
Při importu fulltextového katalogu SYSTÉMU SQL Server 2005 (9.x) můžete zálohovat a obnovit databázi a soubor katalogu. Chování je stejné jako v SQL Serveru 2005 (9.x):
Úplné zálohování databáze bude zahrnovat fulltextový katalog. Chcete-li odkazovat na fulltextový katalog, použijte jeho název souboru v SQL Serveru 2005 (9.x), sysft_+název-katalogu.
Pokud je fulltextový katalog offline, zálohování selže.
Další informace o zálohování a obnovení fulltextových katalogů systému SQL Server 2005 (9.x) najdete v tématu Zálohování a obnovení katalogů Full-Text a Zálohování a obnovení souborů a Full-Text Katalogův Knihách online SQL Serveru 2005 (9.x).
Po obnovení databáze v novější instanci SQL Serveru se vytvoří nový soubor databáze pro fulltextový katalog. Výchozí název tohoto souboru je ftrow_název katalogu.ndf. Pokud například název katalogu je cat1
, bude výchozí název souboru databáze SYSTÉMU SQL Server ftrow_cat1.ndf
. Pokud se ale výchozí název už používá v cílovém adresáři, bude nový soubor databáze pojmenován ftrow_
název katalogu{
guid}.ndf
, kde GUID je globálně jedinečný identifikátor nového souboru.
Po importu katalogů se soubory sys.database_files a sys.master_fileaktualizují tak, aby došlo k odstranění položek katalogu, a sloupec cesta v sys.fulltext_catalogs je nastaven na hodnotu NULL.
Zálohovat databázi
zálohování transakčních protokolů (SQL Server) (pouze model úplného obnovení)
Obnovení zálohy databáze
Příklad
Následující příklad používá klauzuli MOVE v příkazu RESTORE k obnovení databáze SYSTÉMU SQL Server 2005 (9.x) s názvem ftdb1
. Databáze, protokol a soubory katalogu SQL Serveru 2005 (9.x) se přesunou do nových umístění v instanci serveru SQL Serveru následujícím způsobem:
Soubor databáze,
ftdb1.mdf
, se přesune doC:\Program Files\Microsoft SQL Server\MSSQL.1MSSQL13.MSSQLSERVER\MSSQL\DATA\ftdb1.mdf
.Soubor protokolu
ftdb1_log.ldf
se přesune do adresáře protokolu na diskové jednotce protokolu log_drive:\
log_directory\ftdb1_log.ldf
.Soubory katalogu, které odpovídají katalogu
sysft_cat90
jsou přesunuty doC:\temp
. Po importu fulltextových indexů se automaticky umístí do databázového souboru C:\ftrow_sysft_cat90.ndf a odstraní se C:\temp.
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';
Připojení databáze SQL Serveru 2005
V SYSTÉMU SQL Server 2008 (10.0.x) a novějších verzích je fulltextový katalog logický koncept, který odkazuje na skupinu fulltextových indexů. Fulltextový katalog je virtuální objekt, který nepatří do žádné skupiny souborů. Pokud však připojíte databázi SYSTÉMU SQL Server 2005 (9.x), která obsahuje soubory fulltextového katalogu k novější instanci serveru SQL Server, soubory katalogu jsou připojeny z předchozího umístění spolu s ostatními soubory databáze, stejně jako v SYSTÉMU SQL Server 2005 (9.x).
Stav každého připojeného fulltextového katalogu na SQL Serveru je stejný jako při odpojení databáze z SQL Serveru 2005 (9.x). Pokud byla v rámci operace odpojení pozastavena nějaká populace fulltextového indexu, základní soubor se obnoví na SQL Serveru a fulltextový index se zpřístupní pro fulltextové vyhledávání.
Pokud SQL Server nemůže najít soubor fulltextového katalogu nebo pokud byl fulltextový soubor přesunut během operace připojení bez zadání nového umístění, chování závisí na vybrané možnosti upgradu fulltextu. Pokud je možnost upgradu fulltextu Import nebo Přestavba, připojený fulltextový katalog se znovu sestaví. Pokud je možnost aktualizace fulltextu Obnovit, příslušný fulltextový katalog se obnoví.
Další informace o odpojení a připojení databáze naleznete v tématu odpojení a připojení databáze (SQL Server), CREATE DATABASE (SQL Server Transact-SQL), sp_attach_dba sp_detach_db (Transact-SQL).
Viz také
Začínáme s Full-Text vyhledáváním
Konfigurace a správa dělitelů slov a stemmerů pro vyhledávání
Konfigurace a správa filtrů pro vyhledávací