MySQL Søk Tutorial

MySQL database lar deg utføre naturlige språk søk ​​på alle tegn basert feltet gjennom bruk av en FULLTEXT indeks. En fulltekstsøk bruker stoppord (ord som ikke vil bli søkt, for eksempel, og, og det), boolske søk og relevante karakterer i å returnere resultater som samsvarer bedre hva du leter etter.

Det grunnleggende

Søk på naturlig språk betyr at setningen eller ordet søkte på som om det var talte, med ingen spesielle operatører. For en MySQL naturlig språk søk ​​søke strenger må ha mellom fire og 254 tegn og ordene må være atskilt med et skilletegn som mellomrom, komma, eller periode. MySQL parseren kan ikke skille ord uten noen form for skilletegn. Parseren vil fjerne eventuelle stoppord fra søke ord (se Ressurser for en liste over ord). De stoppordfiler vil ikke være en del av søket, og hvis det er bare stoppord i søket uten resultat vil bli returnert.

Hver rad som matcher dine søkeparametre er gitt en relevant vurdering og resultatene returneres basert på klassifiseringen, fra høyeste til laveste. Søk som samsvarer med mer enn femti prosent av radene eller mindre enn tre rader med data blir ikke returnert. Dette er mye forskjellig fra lignende () funksjon som fungerer som et vanlig uttrykk, søker etter den nøyaktige strengen uavhengig av plassering og frekvens.

den Syntax

For å støtte full tekstsøk, må bordet lages med en tekstindeks og kolonnene indeksert må ha en karakter datatype (CHAR, VARCHAR, eller tekst).

CREATE TABLE artikler
(Id INT (10) DEFAULT '0' AUTO_INCREMENT,
date_posted DATE,
kategori INT (2),
Tittelen VARCHAR (255) NOT NULL,
Artikkelen TEKST NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (kategori),
FULLTEXT (tittel, artikkel))

For å søke i data, vil du bruke en SELECT-setning som:

SELECT id, tittel FRA artikler hvor match (tittel, artikkel) MOT ( 'MySQL')

Kampen klausulen må være nøyaktig det samme som de feltene som er angitt i FULLTEXT indeksen.

For å bruke en boolsk søk ​​sted ordene "I boolsk MODE" etter søkestrengen.

SELECT id, tittel FRA artikler hvor match (tittel, artikkel) MOT ( '+ MySQL -PHP' IN boolsk MODUS)

Dette søket vil matche alle artikler som inneholder strengen "MySQL", men ikke inneholder strengen "PHP". For en fullstendig liste over de boolske operatorer se Resources nedenfor.