Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Ez a cikk bemutatja, hogyan hozhatunk létre, tölthetjük fel és kezelhetjük a teljes szöveges indexeket az SQL Server adatbázismotor-ben. A teljes szöveges index támogatja a kulcsszó- és nyelvi keresést a táblában szereplő oszlopok felett.
Teljes szöveges katalógus létrehozása
Mielőtt teljes szöveges indexet készíthetnél, teljes szöveges katalógusra van szükséged. A katalógus egy virtuális tároló egy vagy több teljes szöveges indexhez. További információért lásd: Létrehozni és kezelni Full-Text katalógusokat.
Teljes szöveges index létrehozása, módosítása vagy elvetése
Teljes szöveges index feltöltése
A teljes szöveges index létrehozásának és karbantartásának folyamatát indexelés (más néven feltérképezés) nevezzük. A teljes szöveges indexpopulációnak három típusa van:
- Teljes népesség
- Populáció a változáskövetés alapján
- Növekményes népesség időbélyeg alapján
További információ: Full-Text indexek feltöltése.
Teljes szöveges index tulajdonságainak megtekintése
Teljes szöveges index tulajdonságainak megtekintése Transact-SQL
| Katalógus- vagy dinamikus felügyeleti nézet | Leírás |
|---|---|
| sys.fulltext_index_catalog_usages | Minden teljes szöveges katalógus egy sorát adja vissza teljes szöveges indexhivatkozásnak. |
| sys.fulltext_index_columns | Minden olyan oszlophoz tartalmaz egy sort, amely egy teljes szöveges index része. |
| sys.fulltext_index_fragments | A teljes szövegű index belső táblázatokat, úgynevezett teljes szöveges index fragmentumokat használ a megfordított index adatok tárolására. Ezt a nézetet használhatod a metaadatok lekérdezésére ezekről a fragmentumokról. Ez a nézet minden teljes szöveges indextöredék sorát tartalmazza minden olyan táblában, amely teljes szöveges indexet tartalmaz. |
| sys.fulltext_indexes | Táblázatos objektum teljes szöveges indexeként egy sort tartalmaz. |
| sys.dm_fts_index_keywords | A megadott tábla teljes szöveges indexének tartalmával kapcsolatos információkat adja vissza. |
| sys.dm_fts_index_keywords_by_document | A megadott tábla teljes szöveges indexének dokumentumszintű tartalmával kapcsolatos információkat adja vissza. Egy adott kulcsszó több dokumentumban is megjelenhet. |
| sys.dm_fts_index_population | A jelenleg folyamatban lévő teljes szöveges indexpopulációk adatait adja vissza. |
Teljes szöveges index tulajdonságainak megtekintése az SQL Server Management Studióval
Jegyzet
Az Azure SQL-adatbázisok teljes szöveges indexeinek tulajdonságainak megtekintéséhez használja Transact-SQL.
Az SQL Server Management Studióban az Object Explorerben bontsa ki a kiszolgálót.
Bontsa ki a adatbázisokat, majd bontsa ki azt az adatbázist, amely tartalmazza a teljes szöveges indexet.
Bővítse Táblák.
Kattintson a jobb gombbal arra a táblára, amelyen a teljes szöveges index definiálva van, válassza Full-Text index, majd az Full-Text index helyi menüben válassza a Tulajdonságoklehetőséget. Ez a művelet megnyitja a teljes szöveges index Tulajdonságok párbeszédablakot.
A Kiválaszt egy oldalt menüpontban válaszd ki az alábbi oldalak egyikét:
Oldal Leírás Általános A teljes szöveges index alapvető tulajdonságait jeleníti meg. Ezek a tulajdonságok több módosítható tulajdonságot és sok változtathatatlan tulajdonságot tartalmaznak, mint például az adatbázis neve, táblanév és a teljes szöveges kulcsoszlop neve. A módosítható tulajdonságok a következők:
Full-Text index letiltási lista
Full-Text Indexelés engedélyezett
Változáskövetés
Keresési tulajdonságlistaoszlopok Megjeleníti a teljes szöveges indexeléshez elérhető táblázatoszlopokat. A kijelölt oszlop vagy oszlopok teljes szöveges indexeléssel vannak indexelve. A teljes szöveges indexben annyi oszlopot választhat ki, amennyit fel szeretne venni. További információ: Full-Text indexek feltöltése. Ütemezések Ezen a lapon ütemezéseket hozhat létre vagy kezelhet egy SQL Server Agent-feladathoz, amely növekményes táblázatpopulációt indít el a teljes szöveges indexpopulációkhoz. További információ: Full-Text indexek feltöltése.
Megjegyzés: Miután bezárja a Full-Text Index Properties párbeszédpanelt, minden újonnan létrehozott ütemezés hozzá lesz rendelve egy SQL Server Agent-feladathoz (Start Incremental Table Population on database_name.table_name).A módosítások mentéséhez és a Teljes szöveges index tulajdonságai párbeszédpanelről való kilépéshez válassza az OK lehetőséget.
Indexelt táblák és oszlopok tulajdonságainak megtekintése
Több Transact-SQL függvényt használhatsz, például OBJECTPROPERTYEX, hogy megkapd a különböző teljes szöveges indexelési tulajdonságok értékét. Ezek az információk a teljes szöveges keresés felügyeletéhez és hibaelhárításához hasznosak.
Az alábbi táblázat az indexelt táblákhoz és oszlopokhoz kapcsolódó teljes szöveges tulajdonságokat, valamint azok kapcsolódó Transact-SQL függvényeit sorolja fel.
| Ingatlan | Leírás | Funkció |
|---|---|---|
| Teljes szöveg típusú oszlop |
TYPE COLUMN a táblázatban, amely tartalmazza az oszlop dokumentumtípusának információit. |
COLUMNPROPERTY |
| IsFulltextIndexed | Megadja, hogy egy oszlop engedélyezett-e teljes szöveges indexelésre. | COLUMNPROPERTY |
| IsFulltextKey | Azt jelzi, hogy az index egy tábla teljes szöveges kulcsa-e. | INDEXPROPERTY |
| TableFulltextBackgroundUpdateIndexOn | Azt jelzi, hogy egy tábla rendelkezik-e teljes szöveges háttérfrissítési indexeléssel. | OBJECTPROPERTYEX |
| TableFulltextCatalogId | Teljes szöveges katalógusazonosító, amelyben a tábla teljes szöveges indexadatai találhatók. | OBJECTPROPERTYEX |
| TableFulltextChangeTrackingOn | Azt jelzi, hogy egy tábla teljes szöveges változáskövetési funkcióval rendelkezik-e. | OBJECTPROPERTYEX |
| TableFulltextDocsProcessed | A teljes szöveges indexelés kezdete óta feldolgozott sorok száma. | OBJECTPROPERTYEX |
| TableFulltextFailCount | Azoknak a soroknak a száma, amelyeket a keresés nem indexelt: Full-Text. | OBJECTPROPERTYEX |
| TableFulltextItemCount | A sikeresen teljes szövegesen indexelt sorok száma. | OBJECTPROPERTYEX |
| TableFulltextKeyColumn | A teljes szövegű egyedi kulcsoszlop oszlopazonosítója. | OBJECTPROPERTYEX |
| TableFullTextMergeStatus | Azt jelzi, hogy egy teljes szöveges indexet tartalmazó tábla jelenleg egyesítés alatt áll-e. | OBJECTPROPERTYEX |
| TáblázatteljesSzövegFüggőVáltozások | A feldolgozandó függőben lévő változáskövetési bejegyzések száma. | OBJECTPROPERTYEX |
| TáblaTeljesSzövegKitöltésiÁllapot | Teljes szöveges táblázat populációs állapota. | OBJECTPROPERTYEX |
| AzTáblázatnakAktívTeljesSzövegIndexeVan | Azt jelzi, hogy egy tábla rendelkezik-e aktív teljes szöveges indexel. | OBJECTPROPERTYEX |
Információk lekérése a teljes szöveges kulcs oszlopáról
Általában a CONTAINSTABLE vagy FREETEXTTABLE sorkészletet visszaadó függvények eredményét az alaptáblával kapcsolod össze. Ilyen esetekben ismernie kell az egyedi kulcsoszlop nevét. Ellenőrizheti, hogy egy adott egyedi index a teljes szöveges kulcsként szolgál-e, és lekérheti a teljes szöveges kulcs oszlopának azonosítóját.
Annak meghatározása, hogy a rendszer egy adott egyedi indexet használ-e teljes szöveges kulcsoszlopként
A INDEXPROPERTY függvény meghívásához használjon SELECT utasítást. A függvényhívásban használd OBJECT_ID a függvényt, hogy a tábla (table_name) nevét a táblaazonosítóvá alakítsuk, megadd a tábla egyedi indexének nevét, és megadjuk az IsFulltextKey index tulajdonságot a következőként:
SELECT INDEXPROPERTY(OBJECT_ID('table_name'), 'index_name', 'IsFulltextKey');
Ez az utasítás 1 értéket ad vissza, ha az index egyediséget kényszerít ki a teljes szövegű kulcsoszlopon, és 0 értéket, ha nem.
Példa
A következő példa ellenőrzi, hogy az PK_Document_DocumentNode index érvényesíti-e egyediséget a teljes szöveges kulcsoszlopban:
USE AdventureWorks2025;
GO
SELECT INDEXPROPERTY(OBJECT_ID('Production.Document'), 'PK_Document_DocumentNode', 'IsFulltextKey');
Ez a példa 1-et ad, ha az PK_Document_DocumentNode index egyediséget kényszerít a teljes szövegű kulcsoszlopra. Ellenkező esetben 0-t vagy NULL-t ad vissza.
NULL Ez azt jelenti, hogy érvénytelen indexnevet használsz, az index név nem egyezik a táblával, a tábla nem létezik, és így tovább.
A teljes szövegű kulcsoszlop azonosítójának megkeresése
Minden teljes szöveget engedélyezett táblázatnak van egy oszlopa, amely egyedi sorokat kényszerít ki a táblára ( az egyedi kulcsoszlop). A(z) OBJECTPROPERTYEX függvényből származó TableFulltextKeyColumn tulajdonság az egyedi kulcsot tartalmazó oszlop oszlopazonosítóját tartalmazza.
Ennek az azonosítónak a megkapásához használjunk egy SELECT utasítást, amely a OBJECTPROPERTYEX függvényt hívja. Használd a OBJECT_ID függvényt, hogy a tábla nevét (table_name) átalakítsuk a táblaazonosítóvá, és megadjuk a TableFulltextKeyColumn tulajdonságot a következőképpen meghatározni:
SELECT OBJECTPROPERTYEX(OBJECT_ID('table_name'), 'TableFulltextKeyColumn') AS 'Column Identifier';
Példák
A következő példa a teljes szöveges kulcsoszlop azonosítóját vagy NULL-t adja vissza.
NULL Ez azt jelenti, hogy érvénytelen indexnevet használsz, az index név nem egyezik a táblával, a tábla nem létezik, vagy így tovább.
USE AdventureWorks2025;
GO
SELECT OBJECTPROPERTYEX(OBJECT_ID('Production.Document'), 'TableFulltextKeyColumn');
GO
Az alábbi példa bemutatja, hogyan lehet az egyedi kulcsoszlop azonosítóját felhasználni az oszlop nevének megszerzéséhez.
USE AdventureWorks2025;
GO
DECLARE @key_column AS SYSNAME;
SET @key_column = COL_NAME(
OBJECT_ID('Production.Document'),
OBJECTPROPERTYEX(OBJECT_ID('Production.Document'), 'TableFulltextKeyColumn')
);
SELECT @key_column AS 'Unique Key Column';
GO
Ez a példa egy Unique Key Columnnevű eredményhalmaz-oszlopot ad vissza, amely egyetlen sort jelenít meg, amely a Document table, DocumentNode egyedi kulcsoszlopának nevét tartalmazza. Ha ez a lekérdezés érvénytelen indexnevet tartalmaz, akkor az index név nem felel meg a táblának, a tábla nem létezett, és így tovább, akkor visszaadja NULLa -t .
Indexeljük a varbinary(max) és az XML-oszlopokat
Ha teljes szöveges indexet adsz egy varbinary(max),varbinary vagy xml oszlopra, akkor a teljes szöveges predikátumok (CONTAINS és FREETEXT) és függvények (CONTAINSTABLE és FREETEXTTABLE) használatával is lekérdezheted, mint bármely más teljes szöveges indexelt oszlop.
Varbinary(max) vagy varbináris adatok indexelése
Egyetlen varbinary(max) vagy varbinary oszlop számos dokumentumtípust tárolhat. A Database Engine bármilyen olyan dokumentumtípust támogat, amelyhez szűrő telepítve van és elérhető az operációs rendszerben. Az egyes dokumentumok dokumentumtípusát a dokumentum fájlkiterjesztése azonosítja. Például egy .doc fájlkiterjesztésnél a teljes szöveges keresés azt a szűrőt használja, amely támogatja a Microsoft Word dokumentumokat. Az elérhető dokumentumtípusok listájához kérdezze le a sys.fulltext_document_types katalógusnézetet.
A Full-Text motor használhatja az operációs rendszerben telepített meglévő szűrőket. Ahhoz, hogy operációsrendszer-szűrőket, szóhatárolókat és szárakat használjon, be kell töltenie őket a kiszolgálópéldányba az alábbiak szerint:
EXECUTE sp_fulltext_service
@action = 'load_os_resources',
@value = 1;
Ha teljes szöveges indexet szeretne létrehozni egy varbinary(max) oszlopon, a Full-Text motornak hozzá kell férnie a varbinary(max) oszlopban lévő dokumentumok fájlkiterjesztéseihez. Ezt az információt egy táblázatoszlopban, úgynevezett típusoszlopban kell tárolnod, amelyet a teljes szöveg indexben lévő varbináris (maximum) oszlophoz társítasz. Dokumentum indexelésekor a Full-Text motor a típusoszlop fájlkiterjesztésével azonosítja a használni kívánt szűrőt.
XML-adatok indexelése
Egy xml adattípus oszlop csak XML-dokumentumokat és töredékeket tárol, és csak az XML-szűrőt használja a dokumentumokhoz. Ezért a típusoszlopok szükségtelenek. XML- oszlopokban a teljes szöveges index az XML-elemek tartalmát indexeli, de figyelmen kívül hagyja az XML-jelöléseket. Az attribútumértékek teljes szöveges indexeléssel vannak indexelve, kivéve, ha numerikus értékek. Az elemcímkéket token-határjelölőként használják. A jól formázott XML- vagy HTML-dokumentumok és több nyelvet tartalmazó töredékek támogatottak.
További információért az indexelésről és lekérdezésről xml oszlopon lásd: Teljes szöveges keresés XML oszlopokkal használata.
Táblázat teljes szöveges indexelésének letiltása vagy újbóli engedélyezése
A Database Engine-ben minden felhasználó által létrehozott adatbázis alapértelmezés szerint teljes szöveges formátumban engedélyezett. Emellett az egyes táblák automatikusan engedélyezve lesznek a teljes szöveges indexeléshez, amint egy teljes szöveges index jön létre rajta, és egy oszlopot ad hozzá az indexhez. A táblázat automatikusan letiltásra kerül a teljes szöveges indexeléshez, amikor az utolsó oszlopot eltávolítják a teljes szöveges indexéből.
Egy teljes szöveges indexű asztalon manuálisan letilthatod vagy újra engedélyezheted a táblát teljes szöveges indexeléshez az SQL Server Management Studio segítségével.
Bontsa ki a kiszolgálócsoportot, bontsa ki Adatbázisok, majd bontsa ki azt az adatbázist, amely a teljes szöveges indexeléshez engedélyezni kívánt táblát tartalmazza.
Bontsa ki Táblákelemet, és kattintson a jobb gombbal arra a táblára, amelyet le szeretne tiltani vagy újra engedélyezni a teljes szöveges indexeléshez.
Válassza ki a Full-Text indexet, majd válassza a Letiltás Full-Text index, vagy a Engedélyezés Full-Text indexlehetőséget.
Teljes szöveges index eltávolítása táblázatból
Az Object Explorerben kattintson a jobb gombbal arra a táblára, amely a törölni kívánt teljes szöveges indexet tartalmazza.
Válassza , törölje Full-Text, index.
Amikor a rendszer kéri, válassza az OK lehetőséget a teljes szöveges index törlésének megerősítéséhez.