|
|
ZverejnenéVčera o 20:20
|
|
|
|

Fulltextové vyhľadávanie je voliteľnou súčasťou databázového enginu SQL Server. Ak ste pri inštalácii SQL Serveru nevybrali full-text search, spustite SQL Server inštalátor znova a pridajte.
Prehľad
Index s plným textom zahŕňa jeden alebo viac znakových stĺpcov v tabuľke. Tieto stĺpce môžu obsahovať ktorýkoľvek z nasledujúcich dátových typov: char, varchar, nchar, nvarchar, text, ntext, image, xml alebo varbinary(max) a FILESTREAM. Každý plnotextový index vytvára index pre jeden alebo viac stĺpcov v tabuľke a každý stĺpec môže používať špecifický jazyk.
Plnotextové dotazy pracujú so slovami a frázami podľa pravidiel konkrétnych jazykov (napríklad angličtiny alebo japončiny), čím vykonávajú jazykové vyhľadávania na základe textových údajov v indexe plného textu. Plnotextové dotazy môžu obsahovať jednoduché slová a frázy, alebo viacero foriem slov či fráz. Plnotextový dotaz vráti všetky dokumenty obsahujúce aspoň jednu zhodu (známu aj ako "hit"). Zhoda nastáva, keď cieľový dokument obsahuje všetky výrazy špecifikované v plnotextovom dotaze a zodpovedá ostatným kritériám vyhľadávania (napríklad vzdialenosti medzi zodpovedajúcimi výrazmi).
Linux Docker MSSQL 2022 Inštalácia služby full-textového vyhľadávania
Referencie sú nasledovné:
Skontrolujte, či je nainštalovaná funkcia full-textového vyhľadávania v SQL SERVERi
Príkaz je nasledovný:
SQL Server Full-Text Search, Full-Text Index
Najprv vytvorte novú testovaciu knižnicu a vložte testovacie dáta. Skript je nasledovný:
Vytvorte plnotextový obsah
Na uloženie indexu plného textu sa používa plnotextová tabuľka obsahu. Môžete ho vytvoriť priamo pomocou nasledujúcich skriptov:
Vytvárajte plnotextové indexy pre databázové tabuľky
Pri vytváraní plnotextového indexu pre databázovú tabuľku je potrebné špecifikovať príslušný jazyk. Keďže segmentácia slov sa líši medzi jazykmi, SQL Server použije segmentáciu slov príslušného jazyka na spracovanie dát v tabuľke. Full-textové vyhľadávanie SQL Serveru podporuje približne 50 rôznych jazykov, čo vám umožňuje zobraziť všetky podporované jazyky dotazovaním sys.fulltext_languages tabuliek. Príkaz:
Ako je uvedené nižšie:
Ďalej pridávame plnotextový index pre Chinese Simplified do polí Názov a Obsah v tabuľke Novinky:
Fulltextové vyhľadávanie predikátov a funkcií
Plnotextové dotazy používajú fulltextové predikáty (OBSAHUJEaVOĽNÝ TEXT) a funkcie plného textu (CONTAINSTABLEaFREETEXTTABLE)。 Podporujú zložitú syntax Transact-SQL, ktorá podporuje rôzne formy dotazových termínov.
Rozdiel medzi CONTAINS a FREETEXT
CONTAINS: Prihlásenie na hypertextový odkaz je viditeľné.
Použite presné metódy párovania na nájdenie konkrétnych slov alebo fráz v texte. Podporuje zložité podmienky dotazu, ako je proximity search (napríklad slová musia byť blízko seba), vyhľadávanie prefixov a ďalšie. Zvyčajne sa používa v situáciách, kde je potrebná špecifickejšia kontrola nad výsledkami vyhľadávania.
FREETEXT: Prihlásenie na hypertextový odkaz je viditeľné.
Poskytuje flexibilnejší a prirodzený jazykový vyhľadávací zážitok. Nie sú potrebné žiadne špeciálne kritériá vyhľadávania; Automaticky analyzuje vstupný text a snaží sa nájsť súvisiaci obsah. Je vhodnejšia pre používateľov, ktorí chcú vykonávať jednoduché vyhľadávanie kľúčových slov ako Google, bez obáv o konkrétne lokality alebo formáty.
Príkazy sú nasledovné:
Ako je uvedené nižšie:
CONTAINSTABLE a FREETEXTTABLE
CONTAINSTABLE vracia tabuľky, ktoré spĺňajú kritériá dotazu. V SQL príkazoch ich môžeme považovať za bežné tabuľky a dotazy pomocou CONTAINSTABLE vracajú hodnotu RANK a KEY pre každý riadok. RANK sa používa na označenie miery korelácie s hodnotami medzi 0~1000 a KEY je ID hlavnej tabuľky. FREETEXTTABLE najprv segmentuje slová a vety na dotazovanie, potom dotazy na párovanie. Príkaz je nasledovný:
Ako je uvedené nižšie:
Okrem toho môžete skontrolovať výsledky segmentácie dotazovaním sys.dm_fts_parser:
Ako je uvedené nižšie:
vydať
Otázka: CONTAINS štandardne nepodporuje fuzzy dotazy. Ak zadáte CONTAINS(Column, 'apple'), bude zodpovedať koreňovému slovu (napr. apples), ale nie ananas. Riešenie: Ak sú potrebné fuzzy dotazy, musia byť umiestnené pred a za žolíkmiPridajte dvojité úvodzovky a hviezdičku:OBSAHUJE(stĺpec, '"*apple*"')
Referencia:
Prihlásenie na hypertextový odkaz je viditeľné.
Prihlásenie na hypertextový odkaz je viditeľné. |
Predchádzajúci:Webová stránka pre prácu na diaľku, prácu a freelance pracovnú platformu
|