Buscar..


Introducción

MySQL ofrece búsqueda FULLTEXT. Busca tablas con columnas que contengan texto para las mejores coincidencias de palabras y frases.

Observaciones

FULLTEXT búsqueda en FULLTEXT funciona de manera extraña en tablas que contienen pequeñas cantidades de filas. Por lo tanto, cuando experimente con él, puede resultarle útil obtener una tabla de tamaño mediano en línea. Aquí hay una tabla de artículos de libros , con títulos y autores. Puedes descargarlo, descomprimirlo y cargarlo en MySQL.

FULLTEXT búsqueda FULLTEXT está diseñada para ser utilizada con ayuda humana. Está diseñado para generar más coincidencias que una operación de filtrado ordinaria de la WHERE column LIKE 'text%' .

FULLTEXT búsqueda FULLTEXT está disponible para las tablas MyISAM . También está disponible para tablas InnoDB en MySQL versión 5.6.4 o posterior.

Sencilla búsqueda en FULLTEXT

    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;

Dada una tabla llamada book con columnas llamadas ISBN , 'Título' y 'Autor', esto encuentra libros que coinciden con los términos 'Database Programming' . Muestra los mejores partidos primero.

Para que esto funcione, debe estar disponible un índice de texto completo en la columna Title :

ALTER TABLE book ADD FULLTEXT INDEX Fulltext_title_index (Title);

Búsqueda sencilla de BOOLEAN

    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;

Dada una tabla llamada book con columnas llamadas ISBN , Title y Author , esto busca libros con las palabras 'Database' y 'Programming' en el título, pero no la palabra 'Java' .

Para que esto funcione, debe estar disponible un índice de texto completo en la columna Título:

ALTER TABLE book ADD FULLTEXT INDEX Fulltext_title_index (Title);

Multi-columna de búsqueda en FULLTEXT

    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;

Dada una tabla llamada libro con columnas llamadas ISBN , Title y Author , esto encuentra libros que coinciden con los términos 'Programación de la base de datos de fechas'. Muestra los mejores partidos primero. Las mejores coincidencias incluyen libros escritos por el Prof. CJ Date.

(Pero, una de las mejores coincidencias también es The Date Doctor's Guide to Dating: Cómo pasar de First Date a Perfect Mate . Esto muestra una limitación de la búsqueda en FULLTEXT: no pretende entender cosas como partes del habla o El significado de las palabras indexadas.

Para que esto funcione, debe estar disponible un índice de texto completo en las columnas Título y Autor:

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


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow