La búsqueda de texto completo (FTS) es una tecnología inteligente con la que se pueden encontrar y devolver resultados mejores y más relevantes desde una base de datos.

Los motores de búsqueda suelen utilizar FTS, pero puede proporcionar el mismo rendimiento a su base de datos MySQL. Esto funciona mejor en comparación con las populares búsquedas lentas con comodines que utilizan una declaración similar.

FTS ofrece mayores ventajas sobre los métodos tradicionales de búsqueda en bases de datos. Primero, puede contener palabras (reduciendo las palabras curvas a su base original). Por ejemplo, si busca la palabra “corrió”, podría obtener resultados para “ejecutar” o “correr”.

FTS también se usa ampliamente para mostrar resultados ponderados. Es decir, una vez que ejecuta una consulta en una base de datos, puede ordenar los resultados en orden de relevancia. Esto proporcionará mejores resultados al usuario final.

En este manual le mostraremos cómo activar la búsqueda de texto completo en su base de datos MySQL. Para simplificar, usaremos una base de datos hipotética de la escuela con una tabla de estudiantes con dos campos (nombre del estudiante e identificación del estudiante).

requisitos

  • Servidores MySQL o MariaDB (lista de los mejores servicios de hosting MySQL
  • Un nombre de usuario y contraseña para iniciar sesión en su servidor de base de datos

Paso 1: inicie sesión en su servidor MySQL

Hay varias formas de iniciar sesión en su servidor MySQL / MariaDB. Si está ejecutando Linux, el comando básico es:

$ mysql -u root -p

Puede reemplazar ‘root’ con su nombre de usuario. También el -pag El interruptor le pide que ingrese una contraseña. Si las credenciales son correctas, aparecerá el indicador de MySQL.

mysql>

Paso 2: elija la base de datos que desea utilizar

Ejecute el siguiente comando para seleccionar una base de datos:

mysql> use dbname

Por ejemplo, para usar el nuestro ‘Colegio’ Base de datos ejecutaremos el siguiente comando:

mysql> use school

Paso 3: active la búsqueda de texto completo en la columna de destino

Primero, asegúrese de que nuestra tabla tenga algunos valores. Podemos ejecutar el siguiente comando para verificar esto:

mysql> select * from students;

producción

+------------+--------------+
| student_id | student_name |
+------------+--------------+
|       1041 | John Doe     |
|       1042 | John Roe     |
|       1043 | Richard Roe  |
+------------+--------------+
3 rows in set (0.00 sec)

La búsqueda de texto completo solo funciona con CARBONIZARSE, VARCHAR, o TEXTO Tipos de datos. En este caso, se utiliza nuestra columna ‘nombre_estudiante’ VARCHAR.

Para habilitar la búsqueda de texto completo en la columna, ejecutamos el siguiente comando SQL:

mysql> Alter table students ADD FULLTEXT (student_name);
Query OK, 0 rows affected, 1 warning (0.12 sec)

Paso 4: probar que el AGV está funcionando

Para probar que MySQL FTS está funcionando, ejecutemos el siguiente comando en nuestra tabla de base de datos:

mysql> Seleccione student_id, student_name, match (student_name) AGAINST (‘John Roe’) como la relevancia de los estudiantes donde match (student_name) AGAINST (‘John Roe’);

Agregamos una nueva columna “Relevancia” para que podamos ver la ponderación de cada registro que coincide con nuestro término de búsqueda. “John Roe”.

producción

mysql> Select student_id, student_name, match(student_name) AGAINST ('John Roe') as Relevance from students where match(student_name) AGAINST ('John Roe');
+------------+--------------+----------------------+
| student_id | student_name | Relevance            |
+------------+--------------+----------------------+
|       1042 | John Roe     | 0.062016263604164124 |
|       1041 | John Doe     | 0.031008131802082062 |
|       1043 | Richard Roe  | 0.031008131802082062 |
+------------+--------------+----------------------+
3 rows in set (0.00 sec)

Como puede ver en el ejemplo anterior, se devolvieron los 3 estudiantes cuando ejecutamos la consulta. Sin embargo, el primer registro con el nombre de estudiante ‘John Roe’ tiene más peso porque coincide exactamente con nuestros términos de búsqueda.

Esto confirma que MySQL FTS está funcionando como se esperaba. Si bien este es un ejemplo básico del uso de algunos registros, MySQL FTS puede mejorar el rendimiento en una base de datos con millones de registros.

Conclusión

En esta guía, hemos explicado la importancia de habilitar la búsqueda de texto completo en su base de datos MySQL. También demostramos el principio usando algunos datos de prueba de una tabla de estudiantes. Con FTS habilitado, puede proporcionar resultados de búsqueda mejores y relevantes para sus aplicaciones.