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)
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 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 índiceFULLTEXT
. 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