The MySQL database lar deg utføre naturlig språk søk på alle tegn baserte feltet gjennom bruk av en FULLTEXT indeks. En FULLTEXT søk bruker stoppordfil ( ord som ikke vil bli søkt , for eksempel , og, og at ) , til boolske søk og relevans rangeringer i returnere resultater som nærmere passer til det du leter etter. The Basics
naturlig språk søke betyr at setning eller ord er søkte på som om det var talt, med ingen spesielle operatører . For en MySQL naturlig språk de søkestrenger må ha mellom fire og 254 tegn og ordene skal skilles med et skilletegn som et mellomrom, komma , eller periode . MySQL parser kan ikke skille ord uten noen form for skilletegn . Analysatoren vil fjerne eventuelle stoppordfil fra søkeordene (se Ressurser for en liste over ord ) . De stoppordfil vil ikke være en del av søket , og hvis det er bare stoppordfil i søket noen resultater vil bli returnert .
Hver rad som matcher dine parametrene er gitt en relevans rating og resultatene blir returnert basert på rating, fra høyeste til laveste . Søk som samsvarer med mer enn 50 prosent av radene eller mindre enn tre rader med data blir ikke returnert. Dette er mye forskjellig fra DU ( ) -funksjon som fungerer som et vanlig uttrykk , søker etter den nøyaktige strengen uavhengig av plassering og frekvens .
Syntax
for å støtte full tekstsøk , må bordet være opprettet med en FULL tEKST Index 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 ) , tittel VARCHAR ( 255 ) NOT NULL , artikkel TEKST NOT NULL , PRIMARY KEY (id ) , FOREIGN KEY ( kategori ) , FULLTEXT (tittel , artikkel) );
å søke i data , ville du bruke en SELECT-setning som : en
SELECT id , tittel FROM artikler WHERE 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 boolean søk sted ordene " med boolsk MODE " etter søkestrengen .
SELECT id , tittel fra artikler hvor MATCH (tittel , artikkel) MOT (' + MySQL - PHP ' med boolsk MODUS ) ;
Dette søket vil matche alle artikler som inneholder strengen "MySQL ", men ikke inneholder string " PHP. " For en fullstendig liste over de boolske operatører se Resources , nedenfor.