MySQL-databasen kan du utföra naturligt språk sökningar på någon karaktär baserad område genom användning av ett FULLTEXT index . En FULLTEXT sökning använder stoppord ( ord som inte kommer att sökas , exempelvis , och, och att ) , till booleska sökningar och betyg relevans i resultat som närmare motsvarar vad du letar efter . Grunderna
naturligt språk söka innebär att frasen eller ordet söks som om det talades , utan några särskilda operatörer . För en MySQL naturligt språk söka igenom strängarna måste ha mellan fyra och 254 tecken och ord måste separeras med en avgränsare som ett mellanslag, komma eller period . MySQL parser kan inte separera ord utan någon typ av avgränsare . Tolken kommer att avlägsna eventuella stoppord från sökorden ( se Resurser för en lista med ord ) . De stoppord kommer inte att vara en del av sökandet och om det bara stoppord i sökningen inga resultat returneras .
Varje rad som matchar sökparametrarna ges en relevans betyg och resultaten returneras baserat på rating , från högsta till lägsta. Sökningar som matchar mer än 50 procent av de rader eller mindre än tre rader med data returneras inte . Detta är mycket annorlunda från LIKE ( ) funktion som fungerar som ett reguljärt uttryck , söker efter den exakta strängen oavsett placering och frekvens .
Syntax
för att stödja full text sökning , måste tabellen skapas med en FULL tEXT index och de indexerade kolumnerna måste ha en karaktär datatyp ( CHAR , VARCHAR eller text ) .
CREATE TABLE artiklar ( id INT ( 10 ) DEFAULT '0 ' AUTO_INCREMENT , date_posted datum, kategori INT ( 2 ) , titel VARCHAR ( 255 ) NOT NULL , artikeln TEXT NOT NULL , PRIMARY KEY ( id ) , främmande nyckel ( kategori ) , FULLTEXT ( titel , artikel ) ) ;
att söka i data , skulle du använda ett SELECT-uttryck som:
SELECT id , titel från artiklar där MATCH ( titel , artikel ) MOT ( ' MySQL ' ) ;
matchen klausul måste vara exakt samma som de områden som anges i FULLTEXT index .
vill använda en boolesk sökning plats orden "i BOOLEAN MODE " efter söksträngen .
SELECT id , titel från artiklar där mATCH ( titel , artikel ) MOT ( ' + MySQL - PHP ' IN BOOLEAN MODE ) ,
Denna fråga kommer att matcha alla de artiklar som innehåller strängen " MySQL ", men innehåller inte strängen " PHP. " För en fullständig lista över de booleska operatorerna se Resources , nedan .