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őre vonatkozik:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-adatbázis a Microsoft Fabric rendszerben
A végső tokenizációs eredményt adja vissza, miután egy adott szótörőt, szószótárt és stoplistát alkalmaz egy lekérdezési string bemenetre. A tokenizációs eredmény egyenértékű a megadott lekérdezési lánc Full-Text Engine kimenetével.
sys.dm_fts_parser dinamikus menedzsment funkció.
Syntax
sys.dm_fts_parser (
'query_string'
, lcid
, stoplist_id
, accent_sensitivity
)
Arguments
query_string
Az a kérdés, amit szeretnél megfejteni. query_string lehet egy stringlánc, amely TARTALMAZ szintaxistámogatást. Például beépíthetsz rándozási alakokat, szónonos szónokot és logikai operátorokat.
A szókitörő helyazonosítója (LCID), amelyet query_string elemzéséhez használnak.
stoplist_id
Ha van a stoplista azonosítója, amelyet az LCID-szel azonosított szótörő használ.
stoplist_idaz int. Ha megadod a 'NULL'', akkor nem használsz stoplistát. Ha 0-t adsz meg, akkor a rendszert STOPLIST használják.
A stoplist azonosító egyedi adatbázisban. A teljes szöveges index stoplist azonosítójának megszerzéséhez egy adott táblán használjuk a sys.fulltext_indexes katalógus nézetet.
accent_sensitivity
A boole-érték, amely szabályozza, hogy a teljes szöveges keresés érzékeny-e vagy érzéketlen-e a diakritikus betűkkel. accent_sensitivitybit, az alábbi értékek egyikével:
| Érték | Az akcentusérzékenység... |
|---|---|
| 0 | Érzéketlen Az olyan szavakat, mint a "café" és a "café" ugyanúgy kezelik. |
| 1 | Érzékeny Az olyan szavakat, mint a "café" és a "café", másként kezelik. |
Feljegyzés
Ennek az értéknek a jelenlegi beállításához egy teljes szöveges katalógusban a következő Transact-SQL utasítást futtatjuk: SELECT fulltextcatalogproperty('<catalog_name>', 'AccentSensitivity');.
Visszaadott tábla
| Oszlop neve | Adattípus | Leírás |
|---|---|---|
keyword
1 |
varbinary(128) | Egy adott kulcsszó hexadecimális ábrázolása, amelyet egy szószökő ad, vissza. Ezt a reprezentációt használják a kulcsszó teljes szöveges indexben tárolására. Ez az érték nem olvasható az ember számára, de hasznos ahhoz, hogy egy adott kulcsszót összekapcsoljunk más dinamikus menedzsment nézetek által visszaadott kimenetelekkel, amelyek teljes szöveges index tartalmát adják vissza, mint például a sys.dm_fts_index_keywords és sys.dm_fts_index_keywords_by_document. |
group_id |
int | Tartalmaz egy egész értéket, amely hasznos a logikai csoport megkülönböztetésére, amelyből egy adott kifejezést generáltak. Például Server AND DB OR FORMSOF(THESAURUS, DB) az alábbi group_id értékeket adja ki az angolban:1: Szerver2: DB3: DB |
phrase_id |
int | Tartalmaz egy egész értéket, amely hasznos azoknak az eseteknek megkülönböztetésére, amikor a szóbontó alternatív összetett szavakat, például teljes szöveget bocsát ki. Néha, összetett szavak ("multi-milliós") jelenlétével alternatív formákat ad ki a szószakító. Ezeket az alternatív formákat (kifejezéseket) néha meg kell különíteni. Például multi-million az alábbi phrase_id értékeket adja ki az angolban:1 a multi1 a million2 a multimillion |
occurrence |
int | Minden tag sorrendjét jelzi az elemzési eredményben. Például a kifejezés SQL Server query processor esetében az alábbi előfordulási értékeket tartalmazza a kifejezés kifejezéseire angolul:1 for SQL2 for Server3 for query4 for processor |
special_term |
nvarchar(4000) | Információkat tartalmaz a szószökő által kiadott kifejezés jellemzőiről, amelyek közül az egyik a következők közül: - Pontos egyezés - Zaj szó - A mondat vége - Bekezdés vége - Fejezet vége |
display_term |
nvarchar(4000) | Tartalmazza a kulcsszó emberi olvasható formáját. Ahogy a teljes szöveges index tartalmához való hozzáférést szolgáló függvényeknél, ez a megjelenített kifejezés sem feltétlenül egyezik az eredeti kifejezéssel a denormalizációs korlátozás miatt. Viszont elég pontosnak kell lennie ahhoz, hogy az eredeti bemenetből felismerj. |
expansion_type |
int | Tartalmaz információt egy adott tag bővítésének természetéről, az egyik a következők közül: 0 = Egyszavas eset 2 = Inflekciós tágulás 4 = Szótár bővítése/cseréje Például vegyünk egy esetet, amikor a szinaurusz a run-t a kiterjesztésként jogdefiniálja:<expansion><sub>run</sub><sub>jog</sub></expansion>A kifejezés FORMSOF (FREETEXT, run) a következő kimenetet eredményezi:run ahol expansion_type = 0runs = expansion_type 2running = expansion_type 2ran = expansion_type 2jog = expansion_type 4 |
source_term |
nvarchar(4000) | Az a kifejezés vagy kifejezés, amelyből egy adott kifejezést generáltak vagy értelmeztek. Például egy lekérdezés az alábbi '"word breakers" AND stemmers'source_term értékeket adja ki angolul:word breakers a display_termwordword breakers a display_termbreakersstemmers a display_termstemmers |
Az 10xFF a fájl vagy adathalmaz végét jelző speciális karaktert jelöli.
Megjegyzések
sys.dm_fts_parser támogatja a teljes szöveges predikátumok, mint a CONTAINS és FREETEXT, valamint olyan funkciók szintaxisát és jellemzőit, mint a CONTAINSTABLE és a FREETEXTTABLE.
Használjon Unicode-ot speciális karakterek elemzéséhez
Amikor egy lekérdezési stringet parzálsz, sys.dm_fts_parser az adatbázis összeállítását használja, amelyhez csatlakoztál, hacsak nem határozd meg a lekérdezési stringet Unicode-ként. Ezért egy nem Unicode string esetén, amely speciális karaktereket, például ü vagy ç-t tartalmaz, a kimenet váratlan lehet, az adatbázis összeállításától függően. Egy lekérdezési string feldolgozásához függetlenül az adatbázis-összeállítástól , előtagja a sztrongot , Nazaz . N'<query_string>'
További információért lásd: C. A cikk későbbi részében jelenítse meg egy speciális karaktereket tartalmazó string kimenetét .
Mikor kell használni sys.dm_fts_parser
sys.dm_fts_parser Hatékony lehet hibakeresés céljából. Néhány jelentős felhasználási forgatókönyv a következők:
Hogy megértsük, hogyan kezeli egy adott szótörő egy adott bemenetet
Amikor egy lekérdezés váratlan eredményeket ad, valószínű ok az, ahogyan a szókiadó az adatokat elemzi és töri meg. Használatával
sys.dm_fts_parsermegtalálhatod azt az eredményt, amelyet egy szómegszakító továbbít a teljes szöveg indexébe. Emellett megláthatod, mely kifejezések stopwordok, amelyeket nem keresnek a teljes szöveg indexben. Az, hogy egy kifejezés egy adott nyelvre stopword-e, attól függ, hogy benne van-e a függvényben kijelentett stoplist_id érték által megadott stoplistában.Az akcentusérzékenységi zászló lehetővé teszi, hogy lásd, hogyan értelmezi a szókitörő a bemenetet, figyelembe véve az akcentusérzékenységi információt.
Hogy megértsük, hogyan működik a stemmer egy adott bemeneten
Megtudhatod, hogyan elemzi a szószökő és a stemmer egy lekérdezési kifejezést és annak származási formáit, ha megadsz egy
CONTAINSvagyCONTAINSTABLElekérdezést, amely tartalmazza a következőFORMSOFklauzulatot:FORMSOF ( INFLECTIONAL, <query_term> )Az eredmények megmutatják, milyen kifejezéseket továbbítanak a teljes szöveges indexbe.
Annak megértésére, hogyan bővíti vagy helyettesíti a szótár az összes vagy részben a bemenetet
Megadhatod a következőket is:
FORMSOF ( THESAURUS, <query_term> )Ennek a lekérdezésnek az eredményei megmutatják, hogyan lép kölcsönhatásba a szótörő és a szótár a lekérdezési kifejezés esetén. Láthatod a szótárból a bővítést vagy cseréket, és azonosíthatod a tényleges lekérdezést a teljes szöveges indexhez képest.
Ha a felhasználó problémát okoz:
FORMSOF ( FREETEXT, <query_term> )A flekciós és a szónomás képességek automatikusan zajlanak.
Az előző használati sys.dm_fts_parser eseteken túl jelentősen segíthet a teljes szöveges lekérdezéssel kapcsolatos egyéb problémák megértésében és elhárításában.
Permissions
Engedélyt CREATE FULLTEXT CATALOG és hozzáférési jogot igényel a megadott stoplistához.
Examples
A. Megjelenítse egy adott szószökő kimenetét egy kulcsszóhoz vagy kifejezéshez
A következő példa adja vissza az angol szókeső használatát, amelynek LCID-je 1033, és nincs stoplist a következő lekérdezési láncon:
The Microsoft business analysis
Az akcentusérzékenység le van tiltva.
SELECT *
FROM sys.dm_fts_parser(' "The Microsoft business analysis" ', 1033, 0, 0);
B. Megjelenítse egy adott szómegszakító kimenetét a stoplist szűrés kontextusában
A következő példa adja vissza az angol szótörő, amelynek LCID-je 1033, valamint egy angol stoplista (azonosítója 77) használatát adja a következő lekérdezési láncon:
"The Microsoft business analysis" OR "MS revenue"
Az akcentusérzékenység le van tiltva.
SELECT *
FROM sys.dm_fts_parser(' "The Microsoft business analysis" OR " MS revenue" ', 1033, 77, 0);
C. Jelenítse meg egy speciális karaktereket tartalmazó string kimenetét
A következő példa Unicode-ot használ a következő francia lánc elemzésére:
français
A példa megadja a francia nyelv LCID-jét, 1036valamint egy felhasználó által definiált stoplist azonosítóját, 5. Az akcentusérzékenység engedélyezett.
SELECT *
FROM sys.dm_fts_parser(N'français', 1036, 5, 1);
Kapcsolódó tartalom
- Teljes szöveges és szemantikai keresés dinamikus menedzsment nézetek és függvények
- Full-Text Keresés
- Securables
- A szóelválasztók és szótövezők konfigurálása és kezelése
- Theszaururus fájlok konfigurálása és kezelése Full-Text kereséshez
- Stop-szavak és Stoplisták konfigurálása és kezelése a Full-Text kereséshez
- Lekérdezés Full-Text Keresés