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
Ismerteti, hogyan engedélyezheti vagy tilthatja le a statisztikai szemantikai indexelést a dokumentumokat vagy szöveget tartalmazó kijelölt oszlopokon.
A statisztikai szemantikai keresés a Full-Text Search által létrehozott indexeket használja, és további indexeket hoz létre. A teljes szöveges keresés függőségének eredményeként új szemantikai indexet hoz létre egy új teljes szöveges index definiálásakor, vagy egy meglévő teljes szöveges index módosításakor. Új szemantikai indexet Transact-SQL utasítások használatával, vagy az Full-Text Indexelő varázslóval és az SQL Server Management Studióban található egyéb párbeszédpanelekkel hozhat létre a jelen cikkben leírtak szerint.
Szemantikai index létrehozása
Szemantikai index létrehozásának követelményei és korlátozásai
Indexet bármely olyan adatbázis-objektumon létrehozhat, amely teljes szöveges indexeléshez támogatott, beleértve a táblákat és az indexelt nézeteket is.
Ahhoz, hogy engedélyezhesse az adott oszlopok szemantikai indexelését, a következő előfeltételeknek kell teljesülniük:
Az adatbázishoz teljes szöveges katalógusnak kell léteznie.
A táblázatnak teljes szöveges indexel kell rendelkeznie.
A kijelölt oszlopoknak részt kell vennie a teljes szöveges indexben.
Ezeket a követelményeket egyszerre hozhatja létre és engedélyezheti.
A teljes szöveges indexeléshez támogatott adattípusok bármelyikével rendelkező oszlopokon létrehozhat szemantikai indexet. További információ: Full-Text indexek létrehozása és kezelése.
Bármilyen dokumentumtípust megadhat, amely támogatja a varbinary(max) oszlopok teljes szöveges indexelését. További információért lásd ebben a cikkben a Útmutató: Annak meghatározása, hogy mely dokumentumtípusok indexelhetők.
A szemantikai indexelés két típusú indexet hoz létre a kiválasztott oszlopokhoz : a kulcskifejezések indexét és a dokumentum-hasonlóság indexét. A szemantikai indexelés engedélyezésekor nem választhat csak egy indextípust, a másikat pedig nem. Ezt a két indexet azonban egymástól függetlenül is lekérdezheti. További információ: Kulcskifejezések keresése szemantikai kereséssel rendelkező dokumentumokban , valamint hasonló és kapcsolódó dokumentumok keresése szemantikai kereséssel.
Ha nem ad meg explicit módon LCID-t egy szemantikai indexhez, akkor a szemantikai indexeléshez csak az elsődleges nyelvet és a hozzá tartozó nyelvi statisztikákat használja a rendszer.
Ha egy olyan oszlop nyelvét adja meg, amelyhez a nyelvi modell nem érhető el, az index létrehozása meghiúsul, és hibaüzenetet ad vissza.
Szemantikai index létrehozása, ha nincs teljes szöveges index
Amikor új teljes szöveges indexet hoz létre az CREATE FULLTEXT INDEX utasítással, engedélyezheti a szemantikai indexelést az oszlopszinten úgy, hogy a kulcsszót STATISTICAL_SEMANTICS az oszlopdefiníció részeként adja meg. A szemantikai indexelést akkor is engedélyezheti, ha a Full-Text Indexelő varázslóval új teljes szöveges indexet hoz létre.
Új szemantikai index létrehozása Transact-SQL használatával
Hívja meg az utasítást CREATE FULLTEXT INDEX , és adja meg STATISTICAL_SEMANTICS minden olyan oszlopot, amelyen szemantikai indexet szeretne létrehozni. Az utasítás összes lehetőségéről további információt a (Transact-SQL) című témakörben találCREATE FULLTEXT INDEX.
1. példa: Egyedi index, teljes szöveges index és szemantikai index létrehozása
Az alábbi példa egy alapértelmezett teljes szöveges katalógust hoz létre. ft A példa ezután létrehoz egy egyedi indexet a JobCandidateIDHumanResources.JobCandidate mintaadatbázis táblázatának oszlopában AdventureWorks2025 . Ez az egyedi index a teljes szöveges index kulcsoszlopaként szükséges. A példa ezután létrehoz egy teljes szöveges indexet és egy szemantikai indexet az Resume oszlopon.
CREATE FULLTEXT CATALOG ft AS DEFAULT
GO
CREATE UNIQUE INDEX ui_ukJobCand
ON HumanResources.JobCandidate(JobCandidateID)
GO
CREATE FULLTEXT INDEX ON HumanResources.JobCandidate
(Resume
Language 1033
Statistical_Semantics
)
KEY INDEX JobCandidateID
WITH STOPLIST = SYSTEM
GO
2. példa: Teljes szöveges és szemantikai index létrehozása több, késleltetett indexet tartalmazó oszlopon
Az alábbi példa egy teljes szöveges katalógust documents_cataloghoz létre a AdventureWorks2025 mintaadatbázisban. A példa ezután létrehoz egy teljes szöveges indexet, amely ezt az új katalógust használja. A teljes szöveges index a Title táblán a DocumentSummary, Document és Production.Document oszlopokon jön létre, míg a szemantikai index csak a Document oszlopon készül el. Ez a teljes szöveges index az újonnan létrehozott teljes szöveges katalógust és egy meglévő egyedi kulcsindexet használja. PK_Document_DocumentID Az ajánlott módon ez az indexkulcs egy egész szám oszlopban jön létre. DocumentID A példa megadja az angol nyelv 1033-as LCID-jét, amely az oszlopok adatait tartalmazó nyelv.
Ez a példa azt is meghatározza, hogy a változáskövetés ki van kapcsolva sokaság nélkül. Később, csúcsidőn kívül, a példa egy ALTER FULLTEXT INDEX utasítással indít el egy teljes sokaságot az új indexen, és engedélyezi az automatikus változáskövetést.
CREATE FULLTEXT CATALOG documents_catalog
GO
CREATE FULLTEXT INDEX ON Production.Document
(
Title
Language 1033,
DocumentSummary
Language 1033,
Document
TYPE COLUMN FileExtension
Language 1033
Statistical_Semantics
)
KEY INDEX PK_Document_DocumentID
ON documents_catalog
WITH CHANGE_TRACKING OFF, NO POPULATION
GO
Később csúcsidőn kívüli időpontban az index feltöltődik:
ALTER FULLTEXT INDEX ON Production.Document SET CHANGE_TRACKING AUTO
GO
Új szemantikai index létrehozása az SQL Server Management Studióval
Futtassa a Full-Text Indexelő varázslót, és engedélyezze a statisztikai szemantikát a Táblaoszlopok kiválasztása lapon minden olyan oszlophoz, amelyen szemantikai indexet szeretne létrehozni. A Full-Text Indexelő varázsló elindításáról további információt a Full-Text Indexelő varázsló használata című témakörben talál.
Szemantikai index létrehozása meglévő teljes szöveges index esetén
Akkor adhat hozzá szemantikai indexelést, ha egy meglévő teljes szöveges indexet módosít az ALTER FULLTEXT INDEX utasítással. A szemantikai indexelést az SQL Server Management Studio különböző párbeszédpaneljeit használva is hozzáadhatja.
Szemantikai index hozzáadása Transact-SQL használatával
Hívja meg az ALTER FULLTEXT INDEX utasítást az alábbi szakaszban ismertetett beállításokkal minden olyan oszlophoz, amelyhez szemantikai indexet szeretne hozzáadni. Az utasítás összes lehetőségéről további információt a (Transact-SQL) című témakörben találALTER FULLTEXT INDEX.
A teljes szöveges és a szemantikai indexek is újrafeltöltésre kerülnek ALTERa hívás után, kivéve, ha másként van megadva.
Ha csak egy oszlophoz szeretne teljes szöveges indexelést hozzáadni, használja a szintaxist
ADD.Ha teljes szöveges és szemantikai indexelést is szeretne hozzáadni egy oszlophoz, használja a
ADDszintaxist aSTATISTICAL_SEMANTICSbeállítással.Ha szemantikai indexelést szeretne hozzáadni egy olyan oszlophoz, amely már engedélyezve van a teljes szöveges indexeléshez, használja a
ADD STATISTICAL_SEMANTICSlehetőséget. Egyetlen utasításban csak egy oszlophoz adhat szemantikai indexeléstALTER.
Példa: Szemantikai indexelés hozzáadása olyan oszlophoz, amely már rendelkezik teljes szöveges indexeléssel
Az alábbi példa egy meglévő teljes szöveges indexet módosít a Production.Document mintaadatbázis tábláján AdventureWorks2025 . A példa egy szemantikai indexet ad hozzá a DocumentProduction.Document tábla oszlopához, amely már rendelkezik teljes szöveges indexel. A példa azt határozza meg, hogy az index nem lesz automatikusan feltöltve.
ALTER FULLTEXT INDEX ON Production.Document
ALTER COLUMN Document
ADD Statistical_Semantics
WITH NO POPULATION
GO
Szemantikai index hozzáadása az SQL Server Management Studióval
A szemantikai és teljes szöveges indexeléshez engedélyezett oszlopokat az Full-Text Index tulajdonságai párbeszédpanel Full-Text Indexoszlopok lapján módosíthatja. További információ: Full-Text indexek kezelése.
Szemantikai index módosítása
Meglévő index módosításának követelményei és korlátozásai
Nem módosíthatja a meglévő indexet, amíg az index populációja folyamatban van. Az indexpopuláció állapotának monitorozásáról további információt a Szemantikai keresés kezelése és monitorozása című témakörben talál.
Nem adhat hozzá indexelést egy oszlophoz, és nem módosíthatja vagy elvetheti ugyanahhoz az oszlophoz az indexelést az utasítás egyetlen hívásában
ALTER FULLTEXT INDEX.
Szemantikai index elvetése
A ALTER FULLTEXT INDEX utasítást használva elvetheti a szemantikai indexelést, amikor módosít egy meglévő teljes szöveges indexet. A szemantikai indexelést az SQL Server Management Studióban különböző párbeszédpanelek használatával is elvetheti.
Szemantikai index elvetése Transact-SQL használatával
Ha csak egy oszlopból vagy oszlopból szeretné elvetni a szemantikai indexelést, hívja meg az ALTER FULLTEXT INDEX utasítást a ALTER COLUMN <column_name> DROP STATISTICAL_SEMANTICS beállítással. Egyetlen utasításban több oszlopból is elvetheti az indexelést ALTER .
USE database_name;
GO
ALTER FULLTEXT INDEX
ALTER COLUMN column_name
DROP STATISTICAL_SEMANTICS;
GO
Ha teljes szöveges és szemantikai indexelést is szeretne elvetni egy oszlopból, hívja meg az ALTER FULLTEXT INDEX utasítást a ALTER COLUMN <column_name> DROP beállítással.
USE database_name;
GO
ALTER FULLTEXT INDEX
ALTER COLUMN column_name
DROP;
GO
Szemantikai index elvetése az SQL Server Management Studióval
A szemantikai és teljes szöveges indexeléshez engedélyezett oszlopokat az Full-Text Index tulajdonságai párbeszédpanel Full-Text Indexoszlopok lapján módosíthatja. További információ: Full-Text indexek kezelése.
Szemantikai index elvetésének követelményei és korlátozásai
A szemantikai indexelés megtartása mellett nem vetheti el a teljes szöveges indexelést egy oszlopból. A szemantikai indexelés a dokumentumok hasonlósági eredményeinek teljes szöveges indexelésétől függ.
Nem adható meg a
NO POPULATIONopció, amikor a szemantikai indexelést távolítja el egy olyan táblából, amelyre engedélyezve volt a szemantikai indexelés, annak utolsó oszlopából. A korábban indexelt eredmények eltávolításához populációciklusra van szükség.
Ellenőrizze, hogy engedélyezve van-e a szemantikai keresés az adatbázis-objektumokon
Engedélyezve van a szemantikai keresés egy adatbázisban?
IsFullTextEnabled A DATABASEPROPERTYEX (Transact-SQL) metaadatfüggvény tulajdonságának lekérdezése.
A visszatérési 1 érték azt jelzi, hogy a teljes szöveges keresés és a szemantikai keresés engedélyezve van az adatbázisban. A visszatérési 0 érték azt jelzi, hogy nincsenek engedélyezve.
SELECT DATABASEPROPERTYEX('database_name', 'IsFullTextEnabled');
GO
Engedélyezve van a szemantikai keresés egy táblában?
TableFullTextSemanticExtraction Az OBJECTPROPERTYEX (Transact-SQL) metaadatfüggvény tulajdonságának lekérdezése.
Az 1 visszatérési érték azt jelzi, hogy a szemantikai keresés engedélyezve van a táblában; A 0 visszatérési érték azt jelzi, hogy nincs engedélyezve.
SELECT OBJECTPROPERTYEX(OBJECT_ID('table_name'), 'TableFullTextSemanticExtraction')
GO
Engedélyezve van a szemantikai keresés egy oszlopban?
Annak megállapításához, hogy engedélyezve van-e a szemantikai keresés egy adott oszlopban:
StatisticalSemanticsA COLUMNPROPERTY (Transact-SQL) metaadatfüggvény tulajdonságának lekérdezése.Az 1 visszatérési érték azt jelzi, hogy a szemantikai keresés engedélyezve van az oszlopban; A 0 visszatérési érték azt jelzi, hogy nincs engedélyezve.
SELECT COLUMNPROPERTY(OBJECT_ID('table_name'), 'column_name', 'StatisticalSemantics'); GOKérdezze le a katalógusnézetet sys.fulltext_index_columns (Transact-SQL) a teljes szöveges indexhez.
Az oszlopban lévő
statistical_semantics1 érték azt jelzi, hogy a megadott oszlop a teljes szöveges indexelés mellett a szemantikai indexeléshez is engedélyezve van.SELECT * FROM sys.fulltext_index_columns WHERE object_id = OBJECT_ID('table_name'); GOA Management Studióban az Object Explorerben kattintson a jobb gombbal egy oszlopra, és válassza a Tulajdonságok lehetőséget. Az Oszloptulajdonságok párbeszédpanel Általános lapján jelölje be a Statisztikai szemantika tulajdonság értékét.
Az Igaz érték azt jelzi, hogy a megadott oszlop a teljes szöveges indexelés mellett a szemantikai indexeléshez is engedélyezve van.
A szemantikai keresés indexelhető értékének meghatározása
A szemantikai kereséshez támogatott nyelvek ellenőrzése
A szemantikai indexeléshez kevesebb nyelv támogatott, mint a teljes szöveges indexeléshez. Ennek eredményeképpen lehetnek olyan oszlopok, amelyeket a teljes szöveges kereséshez indexelhet, szemantikai kereséshez azonban nem.
Lekérdezze a katalógusnézetet sys.fulltext_semantic_languages (Transact-SQL).
SELECT * FROM sys.fulltext_semantic_languages;
GO
A szemantikai indexeléshez az alábbi nyelvek támogatottak. Ez a lista az LCID által rendezett katalógusnézet sys.fulltext_semantic_languages (Transact-SQL) kimenetét jelöli.
| Nyelv | LCID |
|---|---|
| Hagyományos kínai | 1028 |
| Német | 1031 |
| Angol (Egyesült Államok) | 1033 |
| Francia | 1036 |
| Olasz | 1040 |
| brazil | 1046 |
| Orosz | 1049 |
| Svéd | 1053 |
| Egyszerűsített kínai | 2052 |
| brit angol nyelvváltozat | 2057 |
| Portugál | 2070 |
| Kínai (Hongkong, KKT, KNK) | 2070 |
| Spanyol | 3082 |
| Kínai (Szingapúr) | 4100 |
| Kínai (Macao SAR) | 5124 |
Megjegyzés:
Ha az eredmények üresek, le kell töltenie és telepítenie kell a Szemantic Language Statistics adatbázist. További információ: A szemantikai nyelvstatisztikai adatbázis telepítése, csatolása és regisztrálása.
Az indexelhető dokumentumtípusok meghatározása
Lekérdezze a katalógusnézetet sys.fulltext_document_types (Transact-SQL).
Ha az indexelni kívánt dokumentumtípus nem szerepel a támogatott típusok listájában, előfordulhat, hogy további szűrőket kell keresnie, letöltenie és telepítenie. További információkért lásd: Regisztrált szűrők és szóhatárolók megtekintése vagy módosítása.
Ajánlott eljárás: Hozzon létre egy külön fájlcsoportot a teljes szöveges és szemantikai indexekhez
Érdemes lehet külön fájlcsoportot létrehozni a teljes szöveges és szemantikai indexekhez, ha a lemezterület-foglalás problémát jelent. A szemantikai indexek ugyanabban a fájlcsoportban jönnek létre, mint a teljes szöveges index. A teljesen kitöltött szemantikai indexek nagy mennyiségű adatot tartalmazhatnak.
Probléma: Az adott oszlopban végzett keresés nem ad eredményt
Unicode nyelvhez nem Unicode LCID van megadva?
A szemantikai indexelés nem Unicode oszloptípuson engedélyezhető egy LCID-vel olyan nyelv esetében, amely csak Unicode-szavakat használ, például az orosz LCID 1049-et. Ebben az esetben a rendszer soha nem ad vissza eredményt az oszlop szemantikai indexeiből.