MySQL Fulltext buscando

MySQL Fulltext buscando
MySQL utiliza un índice general para las columnas de la tabla para que la búsqueda sea más rápida, y este tipo de búsqueda se llama índice BTree. Otro tipo de índice es el índice FullText, que es diferente del índice BTree. El índice FullText se usa para buscar una palabra clave particular en el texto en lugar del valor específico en las columnas indexadas. El índice BTree y el índice FullText se pueden aplicar a la misma columna de la tabla.

Características del índice de texto completo

  1. Se puede aplicar a los campos de texto, varchar y de texto de la tabla.
  2. Admite motores de almacenamiento innodb y myisam.
  3. Se usa con cláusulas matar () y contra ()

Tipos de modos de búsqueda de texto completo

Se pueden realizar tres tipos de búsqueda utilizando el índice FullText, que se explica a continuación:

1. Modo booleano
Este tipo de búsqueda se utiliza para las consultas que contienen operadores booleanos, como menos ('') operador, más firma ('+'), menos signo ('-'), citas dobles (""), operador de comodín (operador ( '*), etc.

2. Modo de lenguaje natural
El tipo de búsqueda predeterminado interpreta la cadena de búsqueda como una fase literal.

3. Modo de expansión de consulta
La búsqueda se realiza dos veces en este tipo de búsqueda. La segunda búsqueda se aplica al resultado de la primera búsqueda para encontrar la salida de búsqueda más relevante.

Requisitos previos

Cree una tabla con datos en una base de datos MySQL para verificar el uso de la búsqueda de texto completo en MySQL. Abra el terminal y conéctese al servidor MySQL ejecutando el siguiente comando:

$ sudo mysql -u root

Ejecute el siguiente comando para crear una base de datos llamada test_db:

Crear base de datos test_db;

Ejecute el siguiente comando para seleccionar la base de datos:

Usar test_db;

Ejecute la siguiente consulta para crear una tabla llamada clientes Con cinco campos:

Crear clientes de la mesa (
ID int no la clave primaria nula,
Nombre Varchar (30) No nulo,
Envíe un correo electrónico a Varchar (50),
Texto de dirección,
contact_no varchar (15));

Ejecute la siguiente consulta de inserción para insertar cuatro registros en el clientes mesa.

Insertar en 'clientes' ('id', 'nombre', 'correo electrónico', 'dirección', 'contact_no') valores
('4001', 'Laboni Sarkar', '[email protected] ', '34, Dhanmondi 9/A, Dhaka.',' 01844767234 '),
('4002', 'Tahsin Ahmed', '[email protected] ',' 123/1, Jigatola, Dhaka.',' 01599348742 '),
('4003', 'Hasina Sarkar', '[email protected] ',' 280, Shantibagh, Dhaka.',' 01600934874 '),
('4004', 'Mehrab Ali', '[email protected] ', '78, Jigatola, Dhaka.',' 01727863459 ');

Ejecute el siguiente comando para agregar el índice FullText para el DIRECCIÓN campo de la clientes mesa:

Alteran los clientes de la tabla agregan FullText (dirección);

Ejecute el siguiente comando para verificar la lista de los índices definidos del clientes mesa:

Mostrar índice de los clientes;

Producción
La siguiente salida muestra que existen dos índices para el clientes mesa. Uno es el índice BTree que se ha definido de forma predeterminada para el campo primario, y otro es el índice de texto completo que se ha definido más adelante para el DIRECCIÓN campo:

Usos de la búsqueda de texto completo

La búsqueda en la tabla utilizando diferentes modos del índice de texto completo se ha mostrado en este tutorial.

Búsqueda de texto completo en modo booleano

La siguiente consulta de selección buscará la palabra 'Dhanmondi' en el DIRECCIÓN campo de la clientes tabla en modo booleano. El clientes La tabla contiene solo un registro que coincide con este criterio:

Seleccione * de los clientes donde coincida (dirección) contra ('dhanmondi' en modo booleano);

Producción
La siguiente salida aparecerá después de ejecutar la consulta anterior:

Ejecute la siguiente consulta de selección para buscar ambas palabras ','Dhaka ' y 'Jigatola ' en el DIRECCIÓN campo de la clientes Tabla utilizando el índice FullText en modo booleano. Hay dos filas en el clientes tabla que contiene ambas palabras 'Dhaka ' y 'Jigatola ':

Seleccionar * de los clientes
Donde coincida (dirección) contra ('dhaka +jigatola' en modo booleano);

Producción
La siguiente salida aparecerá después de ejecutar la consulta anterior. La salida muestra que el DIRECCIÓN el campo contiene 'Dhaka ' y 'Jigatola ':

Ejecute la siguiente consulta de selección para buscar en esas filas de la tabla de clientes que contienen la palabra 'Dhaka ' pero no contiene la palabra 'Jigatola ' en el DIRECCIÓN campo de la clientes tabla utilizando el índice de texto completo en modo booleano. Existen dos filas en el clientes tabla que coincide con los criterios:

Seleccione * de los clientes donde coincida (dirección) contra ('dhaka -jigatola' en modo booleano);

Producción
La siguiente salida aparecerá después de ejecutar la consulta anterior. La salida muestra el DIRECCIÓN el campo contiene 'Dhaka ' pero no 'Jigatola ':

Búsqueda de texto completo en modo de lenguaje natural

Ejecute el siguiente comando para agregar el índice FullText para el nombre campo de la clientes mesa:

Alteran los clientes de la tabla agregan FullText (nombre);

La siguiente consulta de selección buscará la palabra 'Sankar ' en el nombre campo de la clientes tabla en modo de lenguaje natural. El clientes La tabla contiene dos registros que coinciden con este criterio:

Seleccionar * de los clientes
Donde coincida (nombre) contra ('sarkar' en modo de lenguaje natural);

Producción
La siguiente salida aparecerá después de ejecutar la consulta anterior. Las filas que contienen el 'sarkaR 'Valor en el nombre el campo se ha mostrado en la salida:

Búsqueda de texto completo en modo de expansión de consultas

La siguiente consulta de selección buscará la palabra 'laboni ' en el nombre campo de la clientes tabla en modo de expansión de consultas. El clientes La tabla contiene dos registros que coinciden con este criterio:

Seleccionar * de los clientes
Donde coincida (nombre) contra ("Laboni" con expansión de la consulta);

Producción
La siguiente salida aparecerá después de ejecutar la consulta anterior. En la salida, el campo de nombre de la primera fila contiene la palabra 'Laboni ' con otra palabra, 'Sarkar ', y el campo de nombre de la segunda fila contiene la palabra coincidente ','Sarkar '.

Drop Fulltext Índice

Ejecute el siguiente comando para soltar el índice de texto completo del nombre campo:

Alteran los clientes de la tabla Drop Nombre del índice;

Ejecute el siguiente comando para verificar la lista de índices actual de la clientes tabla después de eliminar el índice de texto completo del nombre campo:

Mostrar índice de los clientes;

Producción
La siguiente salida aparecerá después de ejecutar la consulta anterior. La salida muestra que el clientes La tabla contiene un índice BTree para el identificación campo y un texto completo para el DIRECCIÓN campo:

Conclusión

Las diferentes formas de buscar contenido en una tabla utilizando el índice FullText se han mostrado en este tutorial para ayudar a los nuevos usuarios de MySQL a aprender los usos de la búsqueda de texto completo en MySQL. Además, se discutieron las características completas para el índice de texto completo. Esperamos que hayas encontrado este artículo útil. Echa un vistazo a otros artículos de Sugerencia de Linux para obtener más consejos y tutoriales.