Suche…


Einführung

MySQL bietet die Volltextsuche. Es durchsucht Tabellen mit Spalten mit Text nach den besten Übereinstimmungen für Wörter und Ausdrücke.

Bemerkungen

FULLTEXT funktioniert merkwürdig bei Tabellen, die eine geringe Anzahl von Zeilen enthalten. Wenn Sie also damit experimentieren, kann es hilfreich sein, online einen mittelgroßen Tisch zu erhalten. Hier ist eine Tabelle mit Buchartikeln , Titeln und Autoren. Sie können es herunterladen, entpacken und in MySQL laden.

FULLTEXT ist für die Verwendung mit menschlicher Unterstützung gedacht. Es wurde entwickelt, um mehr Übereinstimmungen zu erzielen als bei einer gewöhnlichen WHERE column LIKE 'text%' .

FULLTEXT Suche ist für MyISAM Tabellen verfügbar. Es ist auch für InnoDB Tabellen in MySQL Version 5.6.4 oder höher verfügbar.

Einfache FULLTEXT-Suche

    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;

Bei einer Tabelle mit dem Namen book mit den Spalten ISBN , 'Title' und 'Author' werden Bücher gefunden, die den Begriffen 'Database Programming' . Es zeigt zuerst die besten Übereinstimmungen.

Damit dies funktioniert, muss ein Volltextindex für die Title verfügbar sein:

ALTER TABLE book ADD FULLTEXT INDEX Fulltext_title_index (Title);

Einfache BOOLEAN-Suche

    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;

Bei einer Tabelle mit dem Namen " book mit den Spalten " ISBN , " Title und " Author wird die Suche nach Büchern mit den Wörtern 'Database' und 'Programming' im Titel durchgeführt, nicht jedoch nach dem Wort 'Java' .

Damit dies funktioniert, muss ein Volltextindex für die Titelspalte verfügbar sein:

ALTER TABLE book ADD FULLTEXT INDEX Fulltext_title_index (Title);

Mehrspaltige FULLTEXT-Suche

    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;

Bei einer Tabelle mit dem Namen "book" mit den Spalten " ISBN , " Title und " Author werden Bücher gefunden, die den Begriffen "Date Database Programming" entsprechen. Es zeigt zuerst die besten Übereinstimmungen. Zu den besten Übereinstimmungen zählen Bücher von Prof. CJ Date.

(Eines der besten Übereinstimmungen ist jedoch auch der Date Doctor's Guide für das Dating: Wie man vom ersten Date bis zum Perfect Mate kommt . Dies zeigt eine Einschränkung der FULLTEXT-Suche: Es gibt nicht vor, solche Dinge als Teile der Sprache zu verstehen die Bedeutung der indizierten Wörter.)

Damit dies funktioniert, muss ein Volltextindex für die Spalten Titel und Autor verfügbar sein:

ALTER TABLE book ADD FULLTEXT INDEX Fulltext_title_author_index (Title, Author);


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow