MySQL FullText pesquisando

MySQL FullText pesquisando
O MySQL usa um índice geral para as colunas da tabela para tornar a pesquisa mais rápida, e esse tipo de pesquisa é chamado de índice Btree. Outro tipo de índice é o índice FullText, que é diferente do índice Btree. O índice FullText é usado para pesquisar uma palavra -chave específica no texto, em vez do valor específico nas colunas indexadas. O índice btree e o índice FullText podem ser aplicados à mesma coluna da tabela.

Recursos do Índice FullText

  1. Pode ser aplicado aos campos de char, varchar e texto da tabela.
  2. Ele suporta motores de armazenamento Innodb e Myisam.
  3. É usado com match () e contra () apenas cláusulas

Tipos de modos de pesquisa de textura completa

Três tipos de pesquisa podem ser realizados usando o índice FullText, que é explicado abaixo:

1. Modo booleano
Esse tipo de pesquisa é usado para as consultas que contêm operadores booleanos, como o operador menor que (''), mais sinal ('+'), menos sinal ('-'), citações duplas (“”), operador curinga (operador ( '*), etc.

2. Modo de linguagem natural
O tipo de pesquisa padrão interpreta a sequência de pesquisa como uma fase literal.

3. Modo de expansão de consulta
A pesquisa é feita duas vezes neste tipo de pesquisa. A segunda pesquisa é aplicada ao resultado da primeira pesquisa para descobrir a saída de pesquisa mais relevante.

Pré -requisitos

Crie uma tabela com dados em um banco de dados MySQL para verificar o uso da pesquisa completa no MySQL. Abra o terminal e conecte -se ao servidor MySQL, executando o seguinte comando:

$ sudo mysql -u root

Execute o seguinte comando para criar um banco de dados nomeado test_db:

Criar banco de dados test_db;

Execute o seguinte comando para selecionar o banco de dados:

Use test_db;

Execute a seguinte consulta para criar uma tabela chamada clientes com cinco campos:

Crie clientes de tabela (
Id int não é uma chave primária nula,
Nome Varchar (30) não nulo,
Email Varchar (50),
Texto do endereço,
contact_no varchar (15));

Execute a seguinte consulta de inserção para inserir quatro registros no clientes mesa.

Insira em 'clientes' ('id', 'nome', 'email', 'endereço', '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 ');

Execute o seguinte comando para adicionar o índice FullText para o endereço campo do clientes mesa:

Alter Table Clients Add FullText (Endereço);

Execute o seguinte comando para verificar a lista dos índices definidos do clientes mesa:

Mostrar índice de clientes;

Saída
A saída a seguir mostra que existem dois índices para o clientes mesa. Um é o índice btree que foi definido por padrão para o campo primário, e outro é o índice de texto completo que foi definido posteriormente para o endereço campo:

Usos da pesquisa completa

A pesquisa na tabela usando diferentes modos do índice FullText foi mostrada neste tutorial.

Pesquisa FullText no modo booleano

A seguinte consulta selecionada pesquisará a palavra 'Dhanmondi' no endereço campo do clientes mesa no modo booleano. O clientes A tabela contém apenas um registro que corresponde a este critério:

Selecione * FROM CLIENTES WHERE MACK (Endereço) contra ('Dhanmondi' no modo booleano);

Saída
A saída a seguir aparecerá após a execução da consulta anterior:

Execute a seguinte consulta selecionada para pesquisar as duas palavras 'Dhaka ' e 'Jigatola ' no endereço campo do clientes tabela usando o índice FullText no modo booleano. Existem duas linhas no clientes Tabela que contém as duas palavras 'Dhaka ' e 'Jigatola ':

Selecione * dos clientes
Onde correspondência (endereço) contra ('dhaka +jigatola' no modo booleano);

Saída
A saída a seguir aparecerá após a execução da consulta anterior. A saída mostra que o endereço Campo contém 'Dhaka ' e 'Jigatola ':

Execute a seguinte consulta selecionada para pesquisar essas linhas da tabela de clientes que contêm a palavra 'Dhaka ' mas não contém a palavra 'Jigatola ' no endereço campo do clientes tabela usando o índice de text fulltext no modo booleano. Duas linhas existem no clientes Tabela que corresponde aos critérios:

Selecione * FROM CLIENTES WHERE Match (endereço) contra ('dhaka -jigatola' no modo booleano);

Saída
A saída a seguir aparecerá após a execução da consulta anterior. A saída mostra o endereço Campo contém 'Dhaka ' mas não 'Jigatola ':

Pesquisa FullText no modo de linguagem natural

Execute o seguinte comando para adicionar o índice FullText para o nome campo do clientes mesa:

Alter Table Clients Add FullText (Nome);

A seguinte consulta selecionada pesquisará a palavra 'Sankar ' no nome campo do clientes Tabela no modo de linguagem natural. O clientes A tabela contém dois registros que correspondem a este critério:

Selecione * dos clientes
Onde corresponder (nome) contra ('Sarkar' no modo de linguagem natural);

Saída
A saída a seguir aparecerá após a execução da consulta anterior. As linhas que contêm o 'Sarkar 'valor no nome o campo foi mostrado na saída:

Pesquisa de texto completo no modo de expansão de consulta

A seguinte consulta selecionada pesquisará a palavra 'laboni ' no nome campo do clientes tabela no modo de expansão de consulta. O clientes A tabela contém dois registros que correspondem a este critério:

Selecione * dos clientes
Onde corresponder (nome) contra ("laboni" com expansão de consulta);

Saída
A saída a seguir aparecerá após a execução da consulta anterior. Na saída, o campo de nome da primeira linha contém a palavra 'Laboni ' com outra palavra, 'Sarkar ', E o campo de nome da segunda linha contém a palavra correspondente, 'Sarkar '.

Soltar o índice FullText

Execute o seguinte comando para soltar o índice FullText do nome campo:

Alter os clientes da tabela soltar o nome do índice;

Execute o seguinte comando para verificar a lista atual do índice do clientes tabela depois de remover o índice de text completo do nome campo:

Mostrar índice de clientes;

Saída
A saída a seguir aparecerá após a execução da consulta anterior. A saída mostra que o clientes A tabela contém um índice btree para o eu ia campo e um texto completo para o endereço campo:

Conclusão

As diferentes maneiras de pesquisar conteúdo em uma tabela usando o índice FullText foram mostradas neste tutorial para ajudar os novos usuários do MySQL a aprender os usos da pesquisa completa no MySQL. Além disso, os recursos completos para o índice FullText foram discutidos. Esperamos que você tenha achado este artigo útil. Confira outros artigos de dica do Linux para obter mais dicas e tutoriais.