Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 29|Odpoveď: 2

[Tipy] (MSSQL) SQL Server plnotextové vyhľadávanie, index plného textu

[Kopírovať odkaz]
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é:
Docker MSSQL 2022 inštaluje službu full-textového vyhľadávania
https://www.itsvse.com/thread-10857-1-1.html

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
 Prenajímateľ| ZverejnenéPred 2 minútami |
 Prenajímateľ| ZverejnenéPred 58 sekundami |
EF Core používa funkciu fulltextového vyhľadávaniaPrihlásenie na hypertextový odkaz je viditeľné.
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com