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);


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow