|
|
Opslået påI går kl. 20:20
|
|
|
|

Fuldtekstsøgning er en valgfri komponent i SQL Server-databasemotoren. Hvis du ikke valgte fuldtekstsøgning ved installation af SQL Server, skal du køre SQL Server-installationsprogrammet igen for at tilføje det.
Oversigt
Et fuldtekstindeks indeholder en eller flere tegnbaserede kolonner i en tabel. Disse kolonner kan have en af følgende datatyper: char, varchar, nchar, nvarchar, tekst, ntext, image, xml eller varbinary(max) og FILESTREAM. Hvert fuldtekstindeks opretter et indeks for en eller flere kolonner i tabellen, og hver kolonne kan bruge et specifikt sprog.
Fuldtekstforespørgsler opererer på ord og sætninger i henhold til reglerne for specifikke sprog (såsom engelsk eller japansk), og udfører dermed sprogsøgninger baseret på tekstdata i fuldtekstindekset. Fuldtekstforespørgsler kan indeholde simple ord og sætninger eller flere former for ord eller fraser. En fuldtekstforespørgsel returnerer alle dokumenter, der indeholder mindst ét match (også kendt som et "hit"). Et match opstår, når måldokumentet indeholder alle de termer, der er specificeret i fuldtekstforespørgslen, og matcher andre søgekriterier (såsom afstanden mellem matchende termer).
Linux Docker MSSQL 2022 Fuldtekst Søgetjenesteinstallation
Referencer er som følger:
Tjek om SQL SERVERs fuldtekst-søgefunktion er installeret
Kommandoen er som følger:
SQL Server fuldtekstsøgning, fuldtekstindeks
Først opretter du et nyt testbibliotek og indsætter testdata. Scriptet er som følger:
Opret en fuldtekstfortegnelse
En fuldtekstfortegnelse bruges til at gemme fuldtekstindekset. Du kan oprette den direkte ved hjælp af følgende scripts:
Skab fuldtekstindekser til databasetabeller
Når du opretter et fuldtekstindeks for en databasetabel, skal du angive det tilsvarende sprog. Da ordsegmentering varierer mellem sprog, vil SQL Server bruge det tilsvarende sprogs ordsegmentering til at behandle dataene i tabellen. SQL Servers fuldtekstsøgning understøtter omkring 50 forskellige sprog, så du kan se alle understøttede sprog ved at forespørge sys.fulltext_languages tabeller. Kommando:
Som vist nedenfor:
Dernæst tilføjer vi et fuldtekstindeks for forenklet kinesisk til felterne Titel- og Indholdsindhold i Nyhedstabellen:
Fuldtekstsøgning efter prædikater og funktioner
Fuldtekstforespørgsler bruger fuldtekstprædikater (INDEHOLDERogFRITEKST) og fuldtekstfunktioner (INDEHOLDSSTABILogFRITEKSTTABEL)。 De understøtter den komplekse Transact-SQL-syntaks, som understøtter forskellige former for forespørgselstermer.
Forskellen mellem CONTAINS og FREETEXT
CONTAINS: Hyperlink-login er synlig.
Brug præcise matchningsmetoder til at finde specifikke ord eller sætninger i teksten. Understøtter komplekse forespørgselsbetingelser, såsom nærhedssøgning (for eksempel skal ord vises tæt på hinanden), præfikssøgning og mere. Det bruges normalt i situationer, hvor mere specifik kontrol over søgeresultaterne er nødvendig.
FREETEXT: Hyperlink-login er synlig.
Giver en mere fleksibel og naturlig sprogbaseret søgeoplevelse. Der kræves ingen særlige søgekriterier; Den parser automatisk inputteksten og forsøger at finde relateret indhold. Det er mere egnet til brugere, der ønsker at udføre simple søgninger med nøgleord som Google uden at bekymre sig om specifikke placeringer eller formater.
Kommandoerne er som følger:
Som vist nedenfor:
CONTAINSTABLE og FREETEXTTABLE
CONTAINSTABLE returnerer tabeller, der opfylder forespørgselskriterierne. I SQL-sætninger kan vi behandle dem som almindelige tabeller, og forespørgsler med CONTAINSTABLE returnerer en RANK-værdi og en KEY for hver række. RANK bruges til at angive graden af korrelationsmatch, med værdier mellem 0~1000, og KEY er ID'et for hovedtabellen. FREETEXTTABLE segmenterer først de ord og sætninger, der skal forespørges, og derefter forespørgsler for matchning. Kommandoen er som følger:
Som vist nedenfor:
Derudover kan du tjekke segmenteringsresultaterne ved at forespørge sys.dm_fts_parser:
Som vist nedenfor:
spørgsmål
Spørgsmål: CONTAINS understøtter som standard ikke fuzzy forespørgsler. Hvis du indtaster CONTAINS (kolonne, 'apple'), vil det matche rodordet (f.eks. apples), men ikke pineapple. Løsning: Hvis fuzzy-forespørgsler er nødvendige, skal de placeres før og efter jokerkortTilføj dobbelte anførselstegn og en stjerne:INDEHOLDER(Kolonne, '"*æble*"')
Henvisning:
Hyperlink-login er synlig.
Hyperlink-login er synlig. |
Tidligere:Hjemmeside for fjernarbejde, arbejde og freelance-arbejdsplatformen
|