MySQL Boolean full-text Searches

Summary: neste tutorial, você aprenderá como executar buscas MySQL Boolean full-text Searches. Além disso, você aprenderá como usar operadores booleanos para formar pesquisas muito complexas.

Introdução às pesquisas de texto completo MySQL Boolean

Beside a pesquisa de texto completo em linguagem natural, o MySQL suporta uma forma adicional de pesquisa de texto completo que é chamada de pesquisa de texto completo Booleana. No modo booleano, o MySQL procura por palavras ao invés do conceito como na busca em linguagem natural.

MySQL permite a você executar uma busca por texto completo baseada em consultas muito complexas no modo booleano junto com os operadores booleanos. É por isso que a pesquisa de texto completo no modo booleano é adequada para usuários experientes.

Para executar uma pesquisa de texto completo no modo booleano, você usa o modificador IN BOOLEAN MODE na expressão AGAINST. O exemplo seguinte mostra como procurar um produto cujo nome de produto contenha a palavra Truck palavra.

Code language: SQL (Structured Query Language) (sql)

mysql boolean tex searches - nome de produto com a palavra-chave Truck
Dois produtos cujos nomes de produto contenham a palavra Truck são devolvidos.

Para encontrar o produto cujos nomes de produto contenham a palavra Truck mas não quaisquer linhas que contenham Pickup , você pode usar o operador Booleano excluído ( - ), que retorna o resultado que exclui a palavra-chave Pickup como a seguinte consulta:

Code language: SQL (Structured Query Language) (sql)
mysql boolean tex search com operador booleano

MySQL Boolean operadores de pesquisa de texto completo

A tabela seguinte ilustra os operadores booleanos de pesquisa de texto completo e seus significados:

Operador Descrição
+ Incluir, a palavra deve estar presente.
Excluir, a palavra não deve estar presente.
> Incluir, e aumentar o valor da classificação.
< Incluir, e diminuir o valor da classificação.
() Grupos de palavras em subexpressões (permitindo que sejam incluídas, excluídas, classificadas, e assim por diante como um grupo).
~ Negate o valor de classificação de uma palavra.
* Wildcard no final da palavra.
“” Define uma frase (ao contrário de uma lista de palavras individuais, a frase inteira é igualada para inclusão ou exclusão).

Os exemplos seguintes ilustram como usar operadores booleanos de texto completo na pesquisa:

Para pesquisar linhas que contenham pelo menos uma das duas palavras: mysql ou tutorial

‘mysql tutorial’

Para pesquisar linhas que contenham ambas as palavras: mysql e tutorial

‘+mysql +tutorial’

Procurar linhas que contenham a palavra “mysql”, mas colocar a posição mais alta para as linhas que contenham “tutorial”:

‘+mysql tutorial’

Procurar linhas que contenham a palavra “mysql” mas não “tutorial”

‘+mysql -tutorial’

Procurar linhas que contenham a palavra “mysql” e colocar a linha mais baixa se esta contiver a palavra “tutorial”.

‘+mysql ~tutorial’

Para procurar linhas que contenham as palavras “mysql” e “tutorial”, ou “mysql” e “training” em qualquer ordem, mas coloque as linhas que contenham “mysql tutorial” mais alto que “mysql training”.

‘+mysql +(>tutorial <treinamento)’

Encontrar linhas que contenham palavras começando com “meu” como “mysql”, “mydatabase”, etc.., você usa o seguinte:

‘my*’

MySQL boolean full-text search main features

  • MySQL não ordena automaticamente as linhas por relevância em ordem decrescente na pesquisa Booleana full-text search.
  • Para executar consultas Booleanas, as tabelas InnoDB requerem todas as colunas da expressão MATCH tem um índice FULLTEXT. Note que as tabelas MyISAM não requerem isto, embora a busca seja bastante lenta.
  • MySQL não suporta múltiplos operadores Booleanos em uma busca em tabelas InnoDB e.g., ‘++mysql’. O MySQL irá retornar um erro se você fizer isso. Contudo, o MyISAM comporta-se de forma diferente. Ele ignora outros operadores e usa o operador que está mais próximo da palavra de busca, por exemplo, ‘+-mysql’ tornar-se-á ‘-mysql’.
  • InnoDB busca full-text não suporta o sinal de mais (+) ou menos (-). Ele só suporta o sinal de mais ou menos. O MySQL irá reportar um erro se a palavra pesquisada for ‘mysql+’ ou ‘mysql-‘. Além disso, os seguintes sinais de mais ou menos com wildcard são inválidos: +*, +-
  • O limite de 50% significa que se uma palavra aparecer em mais de 50% das linhas, o MySQL irá ignorá-la no resultado da busca.

Neste tutorial, você aprendeu como executar buscas de texto completo MySQL Boolean com muitos operadores Booleanos úteis.

  • Este tutorial foi útil?
  • Sim Não