MySQL
Zoek volledige text
Zoeken…
Invoering
MySQL biedt FULLTEXT zoeken. Het zoekt in tabellen met kolommen die tekst bevatten naar de beste overeenkomsten voor woorden en woordgroepen.
Opmerkingen
FULLTEXT
zoeken werkt vreemd op tabellen met een klein aantal rijen. Dus als je ermee experimenteert, kan het handig zijn om online een middelgrote tafel te krijgen. Hier is een tabel met boekitems , met titels en auteurs. Je kunt het downloaden, uitpakken en in MySQL laden.
FULLTEXT
zoeken is bedoeld voor gebruik met menselijke hulp. Het is ontworpen om meer overeenkomsten op te leveren dan een gewone WHERE column LIKE 'text%'
filterbewerking.
FULLTEXT
zoeken is beschikbaar voor MyISAM
tabellen. Het is ook beschikbaar voor InnoDB
tabellen in MySQL versie 5.6.4 of hoger.
Eenvoudig FULLTEXT zoeken
SET @searchTerm= 'Database Programming';
SELECT MATCH (Title) AGAINST (@searchTerm IN NATURAL LANGUAGE MODE) Score,
ISBN, Author, Title
FROM book
WHERE MATCH (Title) AGAINST (@searchTerm IN NATURAL LANGUAGE MODE)
ORDER BY MATCH (Title) AGAINST (@searchTerm IN NATURAL LANGUAGE MODE) DESC;
Gegeven een tabel met de naam book
met kolommen met de naam ISBN
, 'Titel' en 'Auteur', vindt dit boeken die overeenkomen met de termen 'Database Programming'
. Het toont eerst de beste wedstrijden.
Om dit te laten werken, moet een volledige tekstindex in de kolom Title
beschikbaar zijn:
ALTER TABLE book ADD FULLTEXT INDEX Fulltext_title_index (Title);
Eenvoudig BOOLEAN-zoeken
SET @searchTerm= 'Database Programming -Java';
SELECT MATCH (Title) AGAINST (@searchTerm IN BOOLEAN MODE) Score,
ISBN, Author, Title
FROM book
WHERE MATCH (Title) AGAINST (@searchTerm IN BOOLEAN MODE)
ORDER BY MATCH (Title) AGAINST (@searchTerm IN BOOLEAN MODE) DESC;
Gegeven een tabel met de naam book
met kolommen met de naam ISBN
, Title
en Author
, wordt gezocht naar boeken met de woorden 'Database'
en 'Programming'
in de titel, maar niet het woord 'Java'
.
Hiervoor moet een volledige tekstindex in de kolom Titel beschikbaar zijn:
ALTER TABLE book ADD FULLTEXT INDEX Fulltext_title_index (Title);
FULLTEXT-zoekactie met meerdere kolommen
SET @searchTerm= 'Date Database Programming';
SELECT MATCH (Title, Author) AGAINST (@searchTerm IN NATURAL LANGUAGE MODE) Score,
ISBN, Author, Title
FROM book
WHERE MATCH (Title, Author) AGAINST (@searchTerm IN NATURAL LANGUAGE MODE)
ORDER BY MATCH (Title, Author) AGAINST (@searchTerm IN NATURAL LANGUAGE MODE) DESC;
Gegeven een tabel met de naam boek met kolommen met de naam ISBN
, Title
en Author
, vindt dit boeken die overeenkomen met de termen 'Datumdatabase-programmering'. Het toont eerst de beste wedstrijden. De beste wedstrijden zijn boeken geschreven door Prof. CJ Date.
(Maar een van de beste wedstrijden is ook The Date Doctor's Guide to Dating: How to get from First Date to Perfect Mate . Dit toont een beperking van FULLTEXT-zoekactie: het pretendeert niet dingen zoals spraak of delen te begrijpen de betekenis van de geïndexeerde woorden.)
Om dit te laten werken, moet een volledige tekstindex op de kolommen Titel en Auteur beschikbaar zijn:
ALTER TABLE book ADD FULLTEXT INDEX Fulltext_title_author_index (Title, Author);