|
|
Geplaatst opGisteren om 20:20
|
|
|
|

Volledige tekstzoekopdracht is een optioneel onderdeel van de SQL Server-database-engine. Als je bij het installeren van SQL Server geen volledige tekstzoekfunctie hebt geselecteerd, start dan opnieuw de SQL Server-installer om deze toe te voegen.
Overzicht
Een volledige tekstindex bevat één of meer kolommen op basis van tekens in een tabel. Deze kolommen kunnen een van de volgende datatypes bevatten: char, varchar, nchar, nvarchar, text, ntext, image, xml, of varbinary(max), en FILESTREAM. Elke full-text index maakt een index aan voor één of meer kolommen in de tabel, en elke kolom kan een specifieke taal gebruiken.
Full-text queries werken op woorden en zinnen volgens de regels van specifieke talen (zoals Engels of Japans), en voeren daardoor taalzoekopdrachten uit op basis van de tekstgegevens in de full-text index. Volledige tekstzoekopdrachten kunnen eenvoudige woorden en zinnen bevatten, of meerdere vormen van woorden of uitdrukkingen. Een full-text query levert alle documenten terug die ten minste één match bevatten (ook wel een "hit" genoemd). Een match treedt op wanneer het doeldocument alle termen bevat die in de full-text query zijn gespecificeerd en overeenkomt met andere zoekcriteria (zoals de afstand tussen overeenkomende termen).
Linux Docker MSSQL 2022 Full-Text Search Service Installatie
Referenties zijn als volgt:
Controleer of de full-text zoekfunctie van SQL SERVER is geïnstalleerd
Het commando is als volgt:
SQL Server Full-Text Search, Full-Text Index
Maak eerst een nieuwe testbibliotheek aan en voeg testgegevens in. Het script is als volgt:
Maak een volledige inhoudsopgave
Een volledige inhoudsopgave wordt gebruikt om de volledige tekstindex op te slaan. Je kunt het direct aanmaken met de volgende scripts:
Maak volledige tekstindexen voor databasetabellen
Bij het maken van een full-text index voor een databasetabel moet je de bijbehorende taal specificeren. Omdat woordsegmentatie per taal varieert, gebruikt SQL Server de woordsegmentatie van de betreffende taal om de data in de tabel te verwerken. De full-text search van SQL Server ondersteunt ongeveer 50 verschillende talen, waardoor je alle ondersteunde talen kunt bekijken door sys.fulltext_languages tabellen te bevragen. Commando:
Zoals hieronder getoond:
Vervolgens voegen we een volledige tekstindex voor vereenvoudigd Chinees toe aan de velden Titel- en Inhoudsgebied in de Nieuws-tabel:
Volledige tekst zoeken naar predicaten en functies
Full-text queries gebruiken full-text predicaten (BEVATenVRIJTEKST) en voltekstfuncties (CONTAINSTABLEenVRIJTEKSTTABEL)。 Ze ondersteunen de complexe Transact-SQL-syntaxis, die verschillende vormen van querytermen ondersteunt.
Het verschil tussen CONTAINS en FREETEXT
CONTAINS: De hyperlink-login is zichtbaar.
Gebruik nauwkeurige matchingmethoden om specifieke woorden of uitdrukkingen in de tekst te vinden. Ondersteunt complexe queryvoorwaarden, zoals nabijheidszoekopdrachten (bijvoorbeeld woorden moeten dicht bij elkaar verschijnen), prefixzoekopdracht en meer. Het wordt meestal gebruikt in situaties waarin meer specifieke controle over zoekresultaten nodig is.
FREETEXT: De hyperlink-login is zichtbaar.
Biedt een flexibelere en natuurlijkere taalgebaseerde zoekervaring. Er zijn geen speciale zoekcriteria vereist; Het ontleedt automatisch de invoertekst en probeert gerelateerde inhoud te vinden. Het is geschikter voor gebruikers die eenvoudige zoekwoordzoekopdrachten zoals Google willen uitvoeren, zonder zich zorgen te maken over specifieke locaties of formaten.
De commando's zijn als volgt:
Zoals hieronder getoond:
CONTAINSTABLE en VRIJTEKSTTABEL
CONTAINSTABLE levert tabellen die aan de querycriteria voldoen. In SQL-statements kunnen we ze behandelen als reguliere tabellen, en queries met CONTAINSTABLE geven een RANK-waarde en een KEY voor elke rij terug. RANK wordt gebruikt om de mate van correlatiematch aan te geven, met waarden tussen 0~1000, en KEY is de ID van de hoofdtabel. FREETEXTTABLE segmenteert eerst de woorden en zinnen die geraadpleegd moeten worden, en vervolgens zoekt hij op matching. Het commando is als volgt:
Zoals hieronder getoond:
Daarnaast kun je de segmentatieresultaten controleren door sys.dm_fts_parser te zoeken:
Zoals hieronder getoond:
uitgeven
Vraag: CONTAINS ondersteunt standaard geen fuzzy-queries. Als je CONTAINS (kolom, 'apple') invoert, komt het overeen met het wortelwoord (bijv. apples) maar niet met pineapple. Oplossing: Als fuzzy-queries nodig zijn, moeten deze voor en na jokers worden geplaatstVoeg dubbele aanhalingstekens en een sterretje toe:BEVAT(Kolom, '"*appel*"')
Referentie:
De hyperlink-login is zichtbaar.
De hyperlink-login is zichtbaar. |
Vorig:Website van het platform voor remote werken, werken en freelance werken
|