Implementarea căutării full-text pe serverul sql

De unde să încep.

Căutarea în întregul text în SQL Server poate fi efectuată pe câmpuri de text (char, varchar, text, ntext, nchar, sau nvarchar).
Pentru a sprijini căutarea integrală a textului pentru informații textuale nestructurate într-o bază de date specifică, trebuie să puteți rezolva patru sarcini principale:
  1. Definiți tabelele și coloanele care sunt înregistrate pentru căutarea fulltext.
  2. Indexarea datelor în coloanele înregistrate.
  3. Creați solicitări de căutare în coloane înregistrate pentru care indexurile full-text sunt pline.
  4. Asigurați-vă că modificările ulterioare la coloanele înregistrate sunt transmise motorului de indexare, astfel încât indiciile full-text să fie întotdeauna în concordanță cu datele.

Deci, aveți tabelul Utilizator. care are trei coloane: Id (int) (tabel simplu primare cheie înregistrate ar trebui să aibă o coloană a cărei valoare este garantată - unic pentru fiecare linie), Nume (text), Coment (text). Trebuie să organizați o căutare în format text în câmpurile Nume și Comentarii. În primul rând, trebuie să înregistrați tabelul, apoi coloanele, apoi să activați tabelul și să creați un index de text întreg. Toate acestea pot fi realizate în mai multe moduri (folosind GUI furnizat de SQL Server Enterprise Manager sau manual, folosind procedurile stocate). Mă voi uita la soluție folosind GUI.
1. Deschideți SQL Server Enterprise Manager.
2. Selectați baza de date în care este localizată tabela dorită.
3. Selectați Tools -> Indexation Full Text ... Apare expertul de configurare pentru căutare fulltext.

4. Creați un catalog complet de text.

Poate fi absent, dar dacă există, exactitatea așa cum este scrisă.

Ce obținem ca urmare a acestei solicitări?
Avem o masă în care sunt trei coloane, iar rândurile din acest tabel vor fi ordonate de la cele mai semnificative. Acest lucru poate fi văzut din coloana RANK și arată cât de bine șirul îndeplinea criteriul de selecție.

Funcția FreetextTable ().
Se utilizează pentru interogările text întreg de tip "freetext" și returnează o estimare potrivită pentru fiecare șir găsit.
sintaxa:
FREETEXTTABLE (tabel, coloană "Freetext")
Această funcție este folosită în același mod ca și ContainsTable (), iar condițiile de căutare sunt aceleași ca pentru predicatul FREETEXT.

Un exemplu de implementare a căutării full-text.

Deci, avem tabelul User. în care există trei coloane Id (int) (o cheie primară simplă), Nume (text), Coment (text). Este înregistrată pentru căutarea integrală a textului, a fost activat și creat indexul full-text. Vom presupune că am realizat posibilitatea utilizării limbilor ruse și ucrainene pentru căutare fulltext.
Ce ar trebui să ne dăm seama? În general, totul este simplu, există o pagina de Web pe care există un câmp de text și un buton introducând text în câmpul și făcând clic pe butonul, vom genera un text complet de intrare interogare text la tabela de utilizare, și Coment pe coloana Nume. ordonați-o după relevanță (descendentă) și afișați-o ca tabel pe pagină, unde prima valoare este valoarea relevanței, al doilea este Nume și al treilea este Coment. De asemenea, trebuie să creați posibilitatea utilizării de caractere speciale pentru a genera interogări de text întreg. La solicitarea noastră, putem scrie un „programator -testirovschik“ și ca urmare trebuie să obțină toate rândurile în care cuvântul „programator“ și nu cuvântul „tester“ Acum, pentru caractere speciale .:

Ce înseamnă operatorul?