Pesquisas de texto completo em linguagem natural do MySQL

Resumo : neste tutorial, você aprenderá sobre a pesquisa de texto completo em linguagem natural do MySQL usando as funções MATCH()e AGAINST().

Introdução às pesquisas de texto completo em linguagem natural do MySQL

Em pesquisas de texto completo em linguagem natural, o MySQL procura documentos relevantes para a consulta de texto livre em linguagem humana natural. MySQL representa a relevância como um número positivo de ponto flutuante, onde uma relevância zero indica nenhuma similaridade.

O MySQL calcula a relevância com base em vários fatores, incluindo o número de palavras e palavras únicas no documento, o número total de palavras na coleção e o número de documentos (linhas) contendo uma palavra específica.

Para realizar pesquisas de texto completo em linguagem natural, você usa as funções MATCH()eAGAINST() .

Exemplo de pesquisa de texto completo em linguagem natural MySQL

Primeiro, crie uma tabela chamada documentscom um índice de texto completo que inclua a contentscoluna:

DROP TABLE IF EXISTS documents;

CREATE TABLE documents (
    id INT AUTO_INCREMENT PRIMARY KEY,
    contents TEXT,
    FULLTEXT ( contents )
);

Segundo, insira algumas linhas na documentstabela:

INSERT INTO documents(contents)
VALUES
('MySQL Database'),
('MySQL'),
('Database'),
('SQL'),
('A fork of MySQL');Linguagem de código:  JavaScript  ( javascript )

Terceiro, procure os documentos cujo conteúdo contenha a palavra “mysql”:

SELECT 
  id, 
  contents, 
  MATCH (contents) AGAINST ('mysql') relevancy 
FROM 
  documents 
WHERE 
  MATCH (contents) AGAINST ('mysql');Linguagem de código:  JavaScript  ( javascript )

Saída:

+----+-----------------+--------------------+
| id | contents        | relevancy          |
+----+-----------------+--------------------+
|  1 | MySQL Database  | 0.0492168664932251 |
|  2 | MySQL           | 0.0492168664932251 |
|  5 | A fork of MySQL | 0.0492168664932251 |
+----+-----------------+--------------------+
3 rows in set (0.00 sec)Linguagem de código:  JavaScript  ( javascript )

Quarto, procure os documentos cujo conteúdo contenha as palavras “mysql” e/ou “banco de dados”:

SELECT 
  id, 
  contents, 
  MATCH (contents) AGAINST ('mysql,database') relevancy 
FROM 
  documents 
WHERE 
  MATCH (contents) AGAINST ('mysql,database');
Linguagem de código:  JavaScript  ( javascript )

Saída:

+----+-----------------+---------------------+
| id | contents        | relevancy           |
+----+-----------------+---------------------+
|  1 | MySQL Database  | 0.20757311582565308 |
|  3 | Database        | 0.15835624933242798 |
|  2 | MySQL           |  0.0492168664932251 |
|  5 | A fork of MySQL |  0.0492168664932251 |
+----+-----------------+---------------------+
4 rows in set (0.00 sec)Linguagem de código:  JavaScript  ( javascript )

A saída indica que os documentos que possuem as palavras “MySQL” e “Banco de dados” têm maior relevância.

Quinto, procure o documento com a frase exata “Banco de dados MySQL” colocando o termo de pesquisa entre aspas duplas:

SELECT 
  id, 
  contents, 
  MATCH (contents) AGAINST ('"MySQL Database"') relevancy 
FROM 
  documents 
WHERE 
  MATCH (contents) AGAINST ('"MySQL Database"');Linguagem de código:  JavaScript  ( javascript )

Saída:

+----+----------------+---------------------+
| id | contents       | relevancy           |
+----+----------------+---------------------+
|  1 | MySQL Database | 0.20757311582565308 |
+----+----------------+---------------------+
1 row in set (0.00 sec)Linguagem de código:  JavaScript  ( javascript )

Resumo

  • Use a pesquisa de texto completo em linguagem natural do MySQL para aumentar a precisão de suas consultas de pesquisa, fornecendo resultados mais relevantes com base no contexto e no significado dos termos de pesquisa inseridos.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *