Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 29|Antwoord: 2

[Tips] (MSSQL) SQL Server full-text search, full-text index

[Link kopiëren]
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:
Docker MSSQL 2022 installeert de full-text zoekdienst
https://www.itsvse.com/thread-10857-1-1.html

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
 Huisbaas| Geplaatst op2 minuten geleden |
 Huisbaas| Geplaatst op58 seconden geleden |
EF Core gebruikt full-text zoekfunctionaliteitDe hyperlink-login is zichtbaar.
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com