Căutarea fulltext a mysql cu indexuri fulltext

MySQL suportă indexurile FULLTEXT de la versiunea 3.23, aceasta permite efectuarea unei căutări complete pentru coloanele cu tipuri VARCHAR și TEXT utilizând o expresie SQL specifică. În primul rând, trebuie să creați acest index FULLTEXT. Cod exemplu:

ALTER TABLE articole ADD FULLTEXT (titlul de conținut);

Printr-o expresie atât de complexă, am adăugat un index FULLTEXT pentru câmpurile de titlu și conținut din tabelul articolelor. După cum puteți vedea, indexul FULLTEXT poate fi adăugat pentru mai multe coloane simultan. Cum căut acum? Este foarte simplu:

Selectați titlul. conținut din articole

WHERE MATCH (titlul conținutului) ÎMPOTRIVA ("Căutare în MySQL");

Așadar, alegem din tabelul de articole titlul de domeniu, conținutul tuturor înregistrărilor, în cazul în care MySQL va găsi fraza "Căutare în MySQL" în titlul coloanelor, conținut. Căutarea este executată fără caractere minuscule. În plus, MySQL sortează rezultatele în ordinea descrescătoare a relevanței. Cum se întâmplă acest lucru și ce înseamnă acest lucru? MySQL creează o valoare de relevanță sub forma unui număr în virgulă mobilă, în funcție de cât de precisă este potrivirea și apoi sortează datele în ordine descrescătoare. Dacă doriți, puteți obține acest număr:

SELECT id. MATCH (titlul conținutului)

ÎMPOTRIVA ("Obțineți valoarea relevanței")

După cum puteți vedea, două funcții MATCH și AGAINST sunt folosite pentru căutare.

MATCH - funcția servește pentru a determina coloana (coloanele) prin care se va efectua căutarea. Lista de coloane din MATCH trebuie definită în interiorul indexului FULLTEXT.

AGAINST este o funcție care efectuează o căutare directă.

Puteți utiliza modul Boolean pentru o căutare mai fină. De exemplu, vom efectua o căutare pentru toate articolele în care apare cuvântul "Boolean", dar nu există cuvântul "mod":

Selectați titlul. conținut din articole

WHERE MATCH (titlu. Conținut)

ÎMPOTRIVA ('Modul boolean' în modul BOOLEAN);

Cum funcționează? Dacă nu specificați caracterele „+“ sau „-“ atunci MySQL caută pentru orice cuvânt din lista din fiecare înregistrare (analogia cu operatorul OR). Dacă specificați simbolul «+», MySQL va alege intrările în care cuvântul este în mod necesar prezent, (în calitate de operator AND). Dacă specificați caracterul "-", MySQL va selecta intrări în care cuvântul dat nu este prezent (ca operator NOT).

După cum puteți vedea, nimic complicat. Adresați-vă răspunsurile. Da, da. Fac multe greșeli, dar expresia "întrebați-vă răspunsurile" este doar o meme de internet. Am primit deja o mulțime de pic, cât de prost sunt și scriu astfel de prostii. Nu voi argumenta, dar în acest caz nu este așa.

Link-uri utile:

Căutarea fulltext a mysql cu indexuri fulltext
Instalați apache, mysql, php, ftp pe Debian GNU / Linux Instalarea la distanță a Debian utilizând SSH
Căutarea fulltext a mysql cu indexuri fulltext
Traducerea corectă a temei WordPress utilizând fișierul POT