|
|
Objavljeno naVčeraj ob 20:20
|
|
|
|

Iskanje po celotnem besedilu je neobvezna komponenta pogona baze podatkov SQL Server. Če pri namestitvi SQL Serverja niste izbrali iskanja po celotnem besedilu, ponovno zaženite namestitveni program SQL Server, da ga dodate.
Pregled
Indeks s polnim besedilom vključuje enega ali več stolpcev, ki temeljijo na znakih v tabeli. Ti stolpci lahko vsebujejo katerikoli od naslednjih tipov podatkov: char, varchar, nchar, nvarchar, text, ntext, image, xml ali varbinary(max) in FILESTREAM. Vsak indeks polnega besedila ustvari indeks za enega ali več stolpcev v tabeli, pri čemer lahko vsak stolpec uporablja določen jezik.
Polnobesedilne poizvedbe delujejo na besedah in frazah po pravilih določenih jezikov (kot sta angleščina ali japonščina), s čimer izvajajo jezikovne iskanja na podlagi besedilnih podatkov v indeksu polnega besedila. Poizvedbe v celotnem besedilu lahko vključujejo preproste besede in fraze ali več oblik besed ali fraz. Polno besedilo poizvedba vrne vse dokumente, ki vsebujejo vsaj eno ujemanje (znano tudi kot "zadetek"). Ujemanje nastopi, ko ciljni dokument vsebuje vse izraze, navedene v polnem besedilu, in ustreza vsem drugim kriterijem iskanja (kot je razdalja med ujemajočimi se izrazi).
Linux Docker MSSQL 2022 Namestitev storitve za iskanje polnega besedila
Reference so naslednje:
Preverite, ali je funkcija iskanja po celotnem besedilu v SQL SERVERJU nameščena
Ukaz je naslednji:
SQL Server Iskanje po celotnem besedilu, indeks celotnega besedila
Najprej ustvarite novo testno knjižnico in vstavite testne podatke. Skripta je naslednja:
Ustvarite kazalo vsebine v celotnem besedilu
Za shranjevanje indeksa celotnega besedila se uporablja kazalo s celotnim besedilom. Lahko ga ustvarite neposredno z naslednjimi skriptami:
Ustvarite indekse s polnim besedilom za tabele baze podatkov
Pri ustvarjanju indeksa polnega besedila za tabelo baze podatkov morate določiti ustrezen jezik. Ker se segmentacija besed razlikuje med jeziki, SQL Server uporablja segmentacijo besed ustreznega jezika za obdelavo podatkov v tabeli. SQL Serverjevo iskanje s polnim besedilom podpira približno 50 različnih jezikov, kar omogoča ogled vseh podprtih jezikov z poizvedbami sys.fulltext_languages tabele. Ukaz:
Kot je prikazano spodaj:
Nato dodamo celotno besedilo indeksa za poenostavljeno kitajščino v polja Naslov in Vsebina v tabeli Novice:
Polno besedilno iskanje predikatov in funkcij
Polnobesedilne poizvedbe uporabljajo predikate polnega besedila (VSEBUJEinPROSTO BESEDILO) in funkcije polnega besedila (CONTAINSTABLEinFREETEXTTABLE)。 Podpirata zapleteno skladnjo Transact-SQL, ki podpira različne oblike poizvedbenih izrazov.
Razlika med CONTAINS in FREETEXT
CONTAINS: Prijava do hiperpovezave je vidna.
Uporabite natančne metode ujemanja, da najdete določene besede ali fraze v besedilu. Podpira zapletene pogoje poizvedb, kot so iskanje v bližini (na primer, besede morajo biti blizu ena druge), iskanje predpon in še več. Običajno se uporablja v situacijah, kjer je potreben bolj specifičen nadzor nad rezultati iskanja.
FREETEXT: Prijava do hiperpovezave je vidna.
Nudi bolj prilagodljivo in naravno jezikovno iskalno izkušnjo. Posebna merila iskanja niso potrebna; Samodejno analizira vhodno besedilo in poskuša najti sorodno vsebino. Bolj je primeren za uporabnike, ki želijo izvajati preprosta iskanja po ključnih besedah, kot je Google, brez skrbi glede določenih lokacij ali formatov.
Ukazi so naslednji:
Kot je prikazano spodaj:
CONTAINSTABLE in FREETEXTTABLE
CONTAINSTABLE vrne tabele, ki izpolnjujejo kriterije poizvedbe. V SQL stavkih jih lahko obravnavamo kot običajne tabele, poizvedbe z uporabo CONTAINSTABLE pa za vsako vrstico vrnejo vrednost RANK in KEY. RANK se uporablja za označevanje stopnje ujemanja korelacije, z vrednostmi med 0~1000, KEY pa je ID glavne tabele. FREETEXTTABLE najprej razdeli besede in stavke za poizvedbo, nato pa poizvedbe za ujemanje. Ukaz je naslednji:
Kot je prikazano spodaj:
Poleg tega lahko rezultate segmentacije preverite tako, da poizvedujete sys.dm_fts_parser:
Kot je prikazano spodaj:
vprašanje
Vprašanje: CONTAINS privzeto ne podpira zamegljenih poizvedb. Če vnesete CONTAINS(Column, 'apple'), bo ustrezal osnovni besedi (npr. apples), ne pa ananasu. Rešitev: Če so potrebne zamegljene poizvedbe, jih je treba postaviti pred in za divjimi kartamiDodajte dvojne narekovaje in zvezdico:VSEBUJE(stolpec, '"*jabolko*"')
Referenčni:
Prijava do hiperpovezave je vidna.
Prijava do hiperpovezave je vidna. |
Prejšnji:Spletna stran za delo na daljavo, delo in samostojno delo
|