De MySQL database stelt u in staat om natuurlijke taal zoekopdrachten uit te voeren op elke character based veld door gebruik te maken van een FULLTEXT index . Een FULLTEXT search gebruikt stopwoorden ( woorden die niet worden doorzocht , zoals de , en , en dat ) , boolean zoekopdrachten en relevantie ratings in om de resultaten die beter overeenkomen met wat u zoekt terugkeren . The Basics Natuurlijke taal zoeken betekent dat de zin of woord wordt gezocht naar alsof het gesproken werd , zonder speciale operatoren . Voor een MySQL natuurlijke taal zoek de zoekstrings moet tussen vier en 254 tekens en de woorden moeten worden gescheiden door een scheidingsteken , zoals een spatie , komma , of periode . De MySQL- parser kan geen woorden scheiden zonder enige vorm van afbakening . De parser zal geen stopwoorden uit de zoekwoorden te verwijderen ( zie bronnen voor een lijst van woorden ) . De stopwoorden geen deel zal uitmaken van het zoeken en als er slechts lege woorden in de zoekopdracht geen resultaten zullen worden geretourneerd . Elke rij die overeenkomt met de zoekopdracht wordt gegeven een relevantie waardering en de resultaten worden geretourneerd op basis van de rating, van hoog naar laag . Zoekopdrachten die overeenkomen met meer dan 50 procent van de rijen of minder dan drie rijen gegevens worden niet geretourneerd . Dit is veel verschilt van de LIKE ( ) -functie die werkt als een reguliere expressie , op zoek naar de exacte reeks onafhankelijk van plaatsing en de frequentie van voorkomen . The Syntax om de volledige tekst zoeken te ondersteunen , moet de tabel worden gemaakt met een vOLLEDIGE tEKST Index en de kolommen geïndexeerd moet een personage datatype ( CHAR , VARCHAR of tEXT ) . CREATE TABLE artikelen ( id INT ( 10 ) DEFAULT '0 ' AUTO_INCREMENT , date_posted DATUM , categorie INT ( 2 ) , titel VARCHAR ( 255 ) NOT NULL , artikel TEXT NOT NULL , PRIMARY KEY ( id ) , FOREIGN KEY (categorie ) , FULLTEXT ( titel , artikel ) ) ; < br > Om de gegevens opvragen , zou u een SELECT-instructie , zoals te gebruiken : SELECT id , titel FROM artikelen WHERE MATCH ( titel , artikel ) TEGEN ( ' MySQL ' ) ; de wedstrijd clausule moet exact hetzelfde zijn als de in de FULLTEXT indexvelden zijn. Om een boolean search plaats gebruik maken van de woorden " iN bOOLEAN MODE" na de zoekstring . SELECT id , titel FROM artikelen WHERE mATCH ( titel , artikel ) TEGEN ( ' + MySQL - PHP ' IN BOOLEAN MODUS ) ; Deze vraag zal overeenkomen met alle artikelen die de string " MySQL ", maar bevatten niet de string " PHP . " Voor een volledige lijst van de Booleaanse operatoren zie bronnen hieronder .
|