MySQL
Búsqueda de texto completo
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);