Full-Text Search (SQL Server Search) frissítése

A következőkre vonatkozik:SQL Server

Az SQL Server a telepítés során, illetve adatbázisfájlok és teljes szöveges katalógusok csatolása, visszaállítása vagy másolása során frissíti a teljes szöveges keresést az SQL Server 2005 (9.x) és korábbi verzióiból.

Kiszolgálópéldány frissítése

A helyszíni frissítéshez az SQL Server egy példánya egymás mellett van beállítva az SQL Server régi verziójával, és az adatok migrálva lesznek. Ha az SQL Server régi verziójában teljes szöveges keresés volt telepítve, a rendszer automatikusan telepíti a teljes szöveges keresés új verzióját. A párhuzamos telepítés azt jelenti, hogy az alábbi összetevők mindegyike az SQL Server példányszintjén található.

Szóhatárolók, szótövezők és szűrők

Minden példány most már saját szóhatárolókat, szótövezőket és szűrőket használ, ahelyett hogy ezeknek az összetevőknek az operációs rendszerbeli verziójára támaszkodna. Ezek az összetevők is könnyebben regisztrálhatók és konfigurálhatók példányonkénti szinten. További információkért lásd: Szóelválasztók és szótövezők konfigurálása és kezelése, valamint Szűrők konfigurálása és kezelése.

Gazdagép démon szűrő

A teljes szöveges szűrődémon-gazdagépek olyan folyamatok, amelyek biztonságosan betöltik és működtetik az indexeléshez és lekérdezéshez használt bővíthető külső összetevőket, például a szóhatárolókat, a szótövezőket és a szűrőket, anélkül, hogy veszélyeztetnék a Full-Text motor integritását. A kiszolgálópéldány többszálas folyamatot használ az összes többszálas szűrőhöz, és egyszálas folyamatot az összes egyszálas szűrőhöz.

Az FDHOST Launcher szolgáltatás (MSSQLFDLauncher) a szolgáltatásfiók adatait továbbítja a Database Engine egy adott példányának szűrődémon hoszt folyamataihoz. A szolgáltatási fiók beállításáról információért lásd: A szolgáltatási fiók beállítása a teljes szövegű Filter Daemon Launcher számára.

Az SQL Server 2005 frissítési kompatibilitása

A teljes szöveges katalógus olyan logikai vagy virtuális objektum, amely teljes szöveges indexek egy csoportját tartalmazza. Ezért az új teljes szöveges katalógusok nem fizikai elérési úttal rendelkező adatbázisfájlként lesznek kezelve. Azonban, ha frissítesz az SQL Server 2005-ről (9.x), ugyanazon a lemezen új fájlcsoport jön létre bármely teljes szöveges katalógushoz, amely adatfájlokat tartalmaz.

Ez az eljárás fenntartja a régi lemez I/O-viselkedését a frissítés után. A katalógusból származó összes teljes szöveges index az új fájlcsoportba kerül, ha a gyökérútvonal létezik. Ha a régi teljes szöveges katalógus elérési útja érvénytelen, a frissítés a teljes szöveges indexet ugyanabban a fájlcsoportban tartja, mint az alaptábla, vagy particionált tábla esetén az elsődleges fájlcsoportban.

Teljes szöveges frissítési beállítások

Amikor SQL Server példányt frissítesz, a felhasználói felület lehetővé teszi, hogy az alábbi teljes szöveges frissítési lehetőségek közül választhatsz. Ezek az opciók csak az SQL Server 2005 (9.x) adatbázisokhoz elérhetők.

Import

A rendszer importálja a teljes szöveges katalógusokat. Az importálás általában jelentősen gyorsabb, mint az újraépítés. Például, ha csak egy CPU maggal az import körülbelül tízszer gyorsabban fut, mint az újraépítés. Az importált teljes szöveges katalógus azonban nem használja az SQL Server legújabb verziójával telepített új szóhatárolókat. A lekérdezési eredmények konzisztenciájának biztosítása érdekében a teljes szöveges katalógusokat újra kell létrehozni.

Jegyzet

A rebuild fut multithreaded módban is, és ha több mint 10 CPU mag áll rendelkezésre, az újraépítés gyorsabban futhat, mint az import, ha engedélyezzük, hogy az újraépítés minden magot használjon.

Ha egy teljes szöveges katalógus nem érhető el, a társított teljes szöveges indexek újraépülnek.

A teljes szöveges index importálásának hatásairól további információért lásd a cikk későbbi részén a teljes szöveges frissítési opció kiválasztásának megfontolásai .

Rebuild

A teljes szövegű katalógusok az aktuális verzió szóelválasztóival épülnek újra. Az indexek újraépítése eltarthat egy ideig, és a frissítés után jelentős mennyiségű processzorra és memóriára lehet szükség.

Visszaállítás

A teljes szöveges katalógusokat újra alaphelyzetbe állították. Amikor frissítesz az SQL Server 2005-ről (9.x), a teljes szöveges katalógusfájlok eltávolításra kerülnek, de a teljes szöveges katalógusok és teljes szöveges indexek metaadatai megmaradnak. A frissítés után minden teljes szöveges index le van tiltva a változáskövetéshez, és a bejárások nem indulnak el automatikusan. A katalógus üres marad, amíg a frissítés befejezése után manuálisan el nem végzi a teljes feltöltést.

A teljes szöveges frissítési lehetőség kiválasztásával kapcsolatos szempontok

Amikor a frissítési lehetőséget választod, vedd figyelembe a következőket:

  • Konzisztenciát igényel a lekérdezési eredményekben?

    Az Database Engine új szóelválasztókat telepít a Full-Text és a szemantikus keresés számára. A szóhatárolókat az indexeléskor és a lekérdezési időpontban is használja a rendszer. Ha nem építi újra újra a teljes szöveges katalógusokat, a keresési eredmények inkonzisztensek lehetnek. Ha olyan teljes szöveges lekérdezést indít, amely olyan kifejezést keres, amelyet a Database Engine egy korábbi verziójában használt szóelválasztó és a jelenlegi szóelválasztó eltérően bont fel, előfordulhat, hogy a kifejezést tartalmazó dokumentum vagy sor nem kerül visszaadásra. Ennek az az oka, hogy az indexelt kifejezések a lekérdezés által használttól eltérő logikával hibásak voltak. A megoldás az, hogy újra feltölti (újraépíti) a teljes szöveges katalógusokat az új szóhatárolókkal, hogy az indexidő és a lekérdezési idő működése azonos legyen. Választhatod az Újraépítés opciót, vagy manuálisan is újraépítheted az Import opció után.

  • Voltak olyan teljes szöveges indexek, amelyeket egész szám, teljes szövegű kulcsoszlopokra építettek?

    Az újraépítés belső optimalizálásokat végez, amelyek bizonyos esetekben javítják a frissített teljes szöveges index lekérdezési teljesítményét. Pontosabban, ha olyan teljes szöveges katalógusokkal rendelkezik, amelyek teljes szöveges indexeket tartalmaznak, amelyekhez az alaptábla teljes szöveges kulcsoszlopa egész szám adattípus, az újraépítés ideális teljesítményt nyújt a teljes szöveges lekérdezésekhez a frissítés után. Ebben az esetben érdemes használni a Újraépítés opciót.

    Jegyzet

    Teljes szöveges indexeknél a teljes szöveges kulcsként szolgáló oszlopnak egész számú adattípusnak kell lennie. További információért lásd: Javítani a teljes szöveges indexek teljesítményét.

  • Mi a prioritás a kiszolgálópéldány online állapotba hozásához?

    A frissítés során történő importálás vagy újraépítés sok CPU-erőforrást igényel, ami késlelteti a kiszolgáló többi példányának frissítését és online állapotba helyezését. Ha lényeges, hogy a kiszolgálópéldány a lehető leghamarabb online állapotba kerüljön, és hajlandó a frissítés után kézi folyamatot futtatni, az Alaphelyzetbe állítás megfelelő.

Konzisztens lekérdezési eredmények biztosítása teljes szöveges index importálása után

Ha teljes szöveges katalógust importálnak egy SQL Server 2005 (9.x) adatbázis frissítésekor, akkor eltérések alakulhatnak ki a lekérdezés és a teljes szöveges indextartalom között, mivel a régi és új szószökők viselkedése eltér. Ebben az esetben a lekérdezések és a teljes szöveges indextartalom teljes egyezésének garantálásához válasszon az alábbi lehetőségek közül:

  • A teljes szöveges indexet tartalmazó teljes szöveges katalógus újraépítése a következővel ALTER FULLTEXT CATALOG:

    ALTER FULLTEXT CATALOG <catalog_name> REBUILD;
    
  • Hajtson végre egy FULL POPULATION a teljes szöveges indexen a következővel: ALTER FULLTEXT INDEX

    ALTER FULLTEXT INDEX ON <table_name> START FULL POPULATION;
    

További információkért a szóelválasztókról lásd: szóelválasztók és szótövezők konfigurálása és kezelése.

Zajszavas fájlok frissítése stoplistákra

Ha egy adatbázist frissít az SQL Server 2005 -ről (9.x), a zajos szavakat tartalmazó fájlok már nem lesznek használatban. A régi zajszavas fájlok azonban a FTDATA\FTNoiseThesaurusBak mappában vannak tárolva, és később használhatja őket a megfelelő SQL Server-stoplisták frissítésekor vagy létrehozásakor.

Az SQL Server 2005-ről való frissítés után (9.x):

  • Ha az SQL Server 2005 (9.x) telepítése során soha nem adott hozzá, nem módosított vagy törölt zajszavas fájlokat, a rendszer stoplistjének meg kell felelnie az igényeinek.

  • Ha a zajszavas fájlokat módosították az SQL Server 2005-ben (9.x), ezek a módosítások elvesznek a frissítés során. A frissítések újbóli létrehozásához manuálisan újra létre kell hoznia ezeket a módosításokat a megfelelő stoplistán. További információért lásd ALTER FULLTEXT STOPLIST.

  • Ha nem szeretne stop szavakat alkalmazni a teljes szöveges indexekre (például, ha törölte vagy eltávolította a zajszó fájlokat az SQL Server 2005 (9.x) telepítésében), minden frissített teljes szöveges indexhez ki kell kapcsolnia a stoplistát. Futtassa a következő Transact-SQL utasítást (cserélje le adatbázis a frissített adatbázis nevére, és tábla a táblanevére):

    USE [database];
    GO
    
    ALTER FULLTEXT INDEX ON [table]
    SET STOPLIST OFF;
    GO
    

    A STOPLIST OFF záradék eltávolítja a stop word szűrést, és aktiválja a tábla populációját, anélkül, hogy szűrné a zajnak tekintett szavakat.

Teljes szöveges katalógusok biztonsági mentése és importálása

Teljes szöveges katalógusok esetén, amelyeket frissítés során újraépítenek vagy újraindítanak (és új teljes szöveges katalógusok esetén) a teljes szöveges katalógus logikus fogalom, és nem fájlcsoportban található. Ezért a teljes szöveges katalógus biztonsági mentéséhez azonosítania kell minden olyan fájlcsoportot, amely tartalmazza a katalógus teljes szöveges indexét, és egyenként biztonsági másolatot készít róluk. További információ: Teljes szöveges katalógusok és indexek biztonsági mentése és visszaállítása.

Az SQL Server 2005-ből (9.x) importált teljes szöveges katalógusok esetében a teljes szöveges katalógus továbbra is adatbázisfájl a saját fájlcsoportjában. A teljes szöveges katalógusok SQL Server 2005 (9.x) biztonsági mentési folyamata továbbra is érvényes, azzal a különbségtel, hogy az MSFTESQL szolgáltatás nem létezik az SQL Serverben. Az SQL Server 2005 (9.x) folyamatáról az SQL Server 2005 Books Online Full-Text-katalógusok biztonsági mentése és visszaállítása című témakörben olvashat.

Teljes szöveges indexek migrálása adatbázis frissítésekor

Az SQL Server korábbi verziójából származó adatbázisfájlok és teljes szöveges katalógusok a csatolással, visszaállítással vagy az Adatbázis másolása varázslóval frissíthetők egy meglévő példányra. Az SQL Server 2005 (9.x) teljes szöveges indexei( ha vannak ilyenek) importálásra, alaphelyzetbe állításra vagy újraépítésre kerülnek. A upgrade_option kiszolgálótulajdonság megadja, hogy a kiszolgálópéldány mely teljes szöveges frissítési lehetőséget használja az adatbázis-frissítések során.

Miután csatlakoztattad, visszaállítottad vagy másoltál bármilyen SQL Server 2005 (9.x) adatbázist egy újabb példányba, az adatbázis azonnal elérhetővé válik, majd automatikusan frissítik. Az indexelt adatok mennyiségétől függően az importálás több órát is igénybe vehet, az újraépítés pedig akár tízszer hosszabb időt is igénybe vehet. Ha a frissítési beállítás importálásra van állítva, ha egy teljes szöveges katalógus nem érhető el, a társított teljes szöveges indexek újraépülnek.

Teljes szöveges frissítési viselkedés módosítása egy kiszolgálópéldányon

Szempontok az SQL Server 2005 (9.x) teljes szöveges katalógus visszaállításához

Az egyik módja annak, hogy teljes szöveges adatokat frissítsenek egy SQL Server 2005 (9.x) adatbázisból, ha egy teljes adatbázis-mentést visszaállítunk egy újabb SQL Server példányra.

Az SQL Server 2005 (9.x) teljes szöveges katalógus importálása közben biztonsági másolatot készíthet és visszaállíthat az adatbázisról és a katalógusfájlról. A viselkedés ugyanaz, mint az SQL Server 2005-ben (9.x):

  • A teljes adatbázis biztonsági mentése tartalmazza a teljes szöveges katalógust. A teljes szöveges katalógusra való hivatkozáshoz használja az SQL Server 2005 (9.x) fájlnevét, sysft_+katalógusnév.

  • Ha a teljes szöveges katalógus offline állapotban van, a biztonsági mentés meghiúsul.

Az SQL Server 2005 (9.x) teljes szöveges katalógusainak biztonsági mentésével és visszaállításával kapcsolatos további információkért tekintse meg a teljes szöveges katalógusok és indexek biztonsági mentését és visszaállítását , valamint az SQL Server 2005 (9.x) Books Online fájl-biztonsági mentését és visszaállítását és Full-Text katalógusait .

Ha az adatbázist az SQL Server egy újabb példányán állítja vissza, a rendszer létrehoz egy új adatbázisfájlt a teljes szöveges katalógushoz. A fájl alapértelmezett neve ftrow_katalógusnév.ndf. Például, ha a catalog-name értéke cat1, akkor az SQL Server adatbázisfájl alapértelmezett neve ftrow_cat1.ndf lenne. Ha azonban az alapértelmezett név már használatban van a célkönyvtárban, az új adatbázisfájl neve ftrow_catalog-name{GUID}.ndf lenne, ahol GUID az új fájl globálisan egyedi azonosítója.

A katalógusok importálása után a rendszer frissíti a sys.database_files és sys.master_files elemeket a katalógusbejegyzések eltávolításával, valamint a path oszlop értéke a sys.fulltext_catalogs táblázatban NULL értékre van állítva.

Adatbázis biztonsági mentése

Adatbázis biztonsági mentésének visszaállítása

Példa

A következő példa a kijelentésben szereplő MOVE záradékot RESTORE használja egy SQL Server 2005 (9.x) adatbázis visszaállítására, amelynek neve ftdb1. Az SQL Server 2005 (9.x) adatbázis-, napló- és katalógusfájljai az ALÁBBI módon kerülnek át az SQL Server-példány új helyére:

  • Az adatbázisfájl (ftdb1.mdf) áthelyezik a(z) C:\Program Files\Microsoft SQL Server\MSSQL.1MSSQL13.MSSQLSERVER\MSSQL\DATA\ftdb1.mdf-be.

  • A naplófájl (ftdb1_log.ldf) a naplólemez-meghajtó egyik naplókönyvtárába kerül, log_drive:\log_directory\ftdb1_log.ldf.

  • A sysft_cat90 katalógusnak megfelelő katalógusfájlok C:\templesznek áthelyezve. Miután a teljes szöveges indexeket importálták, automatikusan egy adatbázis fájlba C:\ftrow_sysft_cat90.ndfkerülnek, és C:\temp törlődnek.

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';

SQL Server 2005-adatbázis csatolása

Az SQL Server 2008 (10.0.x) és újabb verzióiban a teljes szöveges katalógus egy olyan logikai fogalom, amely teljes szöveges indexek csoportjára hivatkozik. A teljes szöveges katalógus egy olyan virtuális objektum, amely nem tartozik egyetlen fájlcsoporthoz sem. Ha azonban egy teljes szöveges katalógusfájlokat tartalmazó SQL Server 2005-ös (9.x) adatbázist csatol egy újabb SQL Server-kiszolgálópéldányhoz, a katalógusfájlok az előző helyükről lesznek csatolva a többi adatbázisfájllal együtt, ugyanúgy, mint az SQL Server 2005 -ben (9.x).

Az SQL Server minden csatolt teljes szöveges katalógusának állapota megegyezik az adatbázis SQL Server 2005-ről való leválasztásakor (9.x). Ha a leválasztási művelet felfüggesztett bármely teljes szöveges indexelést, az SQL Server újraindítja az indexelések betöltését, és a teljes szöveges index elérhetővé válik a teljes szöveges keresés számára.

Ha az SQL Server nem talál teljes szöveges katalógusfájlt, vagy ha a teljes szöveges fájlt a csatolási művelet során helyezték át új hely megadása nélkül, a viselkedés a kijelölt teljes szöveges frissítési lehetőségtől függ. Ha a teljes szöveges frissítési lehetőség Importálás vagy Újraépítés, a csatolt teljes szöveges katalógus újraépül. Ha a teljes szöveges frissítési lehetőség Visszaállítás, a csatolt teljes szöveges katalógus visszaállításra kerül.

További információért az adatbázis leválasztásáról és csatolásáról lásd: Adatbázis leválasztása és csatolása, CREATE DATABASE, sp_attach_db és sp_detach_db.