|
|
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:
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
|