Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 29|Răspunde: 2

[Bacșișuri] (MSSQL) SQL Server Căutare Text Integral, Index Text Integral

[Copiază linkul]
Postat peIeri la 20:20 | | | |
Căutarea full-text este o componentă opțională a motorului de baze de date SQL Server. Dacă nu ai selectat căutarea textului integral când ai instalat SQL Server, rulează din nou instalatorul SQL Server pentru a-l adăuga.

Prezentare generală

Un index full-text include una sau mai multe coloane bazate pe caractere într-un tabel. Aceste coloane pot conține oricare dintre următoarele tipuri de date: char, varchar, nchar, nvarchar, text, ntext, image, xml sau varbinary(max) și FILESTREAM. Fiecare index full-text creează un index pentru una sau mai multe coloane din tabel, iar fiecare coloană poate folosi un limbaj specific.

Interogările textului integral funcționează asupra cuvintelor și expresiilor conform regulilor anumitor limbi (cum ar fi engleza sau japoneza), efectuând astfel căutări de limbă pe baza datelor textului din indexul textului integral. Interogările în text integral pot include cuvinte și expresii simple sau mai multe forme de cuvinte sau expresii. O interogare full-text returnează toate documentele care conțin cel puțin o potrivire (cunoscută și ca "hit"). O potrivire apare atunci când documentul țintă conține toți termenii specificați în interogarea textului integral și corespunde oricăror alte criterii de căutare (cum ar fi distanța dintre termenii potriviți).

Linux Docker MSSQL 2022 Serviciu de Căutare Text Completă

Referințele sunt următoarele:
Docker MSSQL 2022 instalează serviciul de căutare a textului integral
https://www.itsvse.com/thread-10857-1-1.html

Verifică dacă funcția de căutare full-text a SQL SERVER este instalată

Comanda este următoarea:

SQL Server Căutare Text Complet, Index Text Integral

Mai întâi, creează o nouă bibliotecă de testare și inserează datele de test. Scriptul este următorul:
Creează un cuprins integral

Un cuprins cu text complet este folosit pentru a stoca indexul textului complet. Îl poți crea direct folosind următoarele scripturi:
Creează indexuri full-text pentru tabelele bazei de date

Când creezi un index full-text pentru un tabel de baze de date, trebuie să specifici limba corespunzătoare. Deoarece segmentarea cuvintelor variază între limbi, SQL Server va folosi segmentarea cuvintelor din limba corespunzătoare pentru a procesa datele din tabel. Căutarea full-text a SQL Server suportă aproximativ 50 de limbi diferite, permițându-ți să vizualizezi toate limbajele suportate interogând sys.fulltext_languages tabele. Comandă:
Așa cum se arată mai jos:



Apoi, adăugăm un index integral pentru chineza simplificată în câmpurile Titlu și Conținut din tabelul Știrilor:
Căutare în text integral pentru predicate și funcții

Interogările full-text folosesc predicate full-text (CONȚINEșiTEXT LIBER) și funcții de text integral (CONTAINSTABLEșiFREETEXT)。 Acestea suportă sintaxa complexă Transact-SQL, care suportă diverse forme de termeni de interogare.

Diferența dintre CONTAINS și FREETEXT

CONTAINS: Autentificarea cu hyperlink este vizibilă.

Folosește metode precise de potrivire pentru a găsi cuvinte sau expresii specifice în text.
Suportă condiții complexe de interogare, cum ar fi căutarea de proximitate (de exemplu, cuvintele trebuie să apară aproape unele de altele), căutarea cu prefix și altele.
Este de obicei folosit în situații în care este nevoie de un control mai specific asupra rezultatelor căutării.

FREETEXT: Autentificarea cu hyperlink este vizibilă.

Oferă o experiență de căutare mai flexibilă și bazată pe limbaj natural.
Nu sunt necesare criterii speciale de căutare; Analizează automat textul de intrare și încearcă să găsească conținut conex.
Este mai potrivit pentru utilizatorii care doresc să efectueze căutări simple prin cuvinte cheie, precum Google, fără a se îngrijora de locațiile sau formatele specifice.

Comenzile sunt următoarele:
Așa cum se arată mai jos:



CONTAINSTABLE și FREETEXTTABLE

CONTAINSTABLE returnează tabele care îndeplinesc criteriile de interogare. În instrucțiunile SQL, le putem trata ca tabele obișnuite, iar interogările care folosesc CONTAINSTABLE returnează o valoare RANK și o CHEIE pentru fiecare rând. RANK este folosit pentru a indica gradul de potrivire a corelației, cu valori între 0~1000, iar KEY este ID-ul tabelului principal. FREETEXTTABLE segmentează mai întâi cuvintele și propozițiile care urmează să fie interogate, apoi interogează pentru potrivire. Comanda este următoarea:
Așa cum se arată mai jos:



În plus, poți verifica rezultatele segmentării interogând sys.dm_fts_parser:
Așa cum se arată mai jos:



problemă

Întrebare: CONTAINS nu suportă implicit interogări fuzzy. Dacă introduci CONTAINS(Column, 'apple'), acesta va corespunde cuvântului rădăcină (de exemplu, apples), dar nu ananas.
Soluție: Dacă sunt necesare interogări neclare, ele trebuie plasate înainte și după wildcard-uriAdaugă ghilimele duble și un asterisc:CONTAINS(Coloana, '"*măr*"')

Referință:

Autentificarea cu hyperlink este vizibilă.
Autentificarea cu hyperlink este vizibilă.




Precedent:Site web pentru muncă la distanță, muncă și freelancering
 Proprietarul| Postat peAcum 2 minute |
 Proprietarul| Postat peAcum 58 de secunde |
EF Core folosește funcționalitatea de căutare în text integralAutentificarea cu hyperlink este vizibilă.
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com