Uso da pesquisa de texto completo¶
Você pode usar funções de pesquisa para encontrar dados de caracteres (texto) e endereços IPv4 em colunas especificadas de uma ou mais tabelas, incluindo campos nas colunas VARIANT, OBJECT e ARRAY. Essa função pesquisa o texto em colunas ou cadeias de caracteres especificadas com base em uma lista de termos de pesquisa fornecidos. A função retorna TRUE se o texto corresponde a qualquer um dos termos de pesquisa especificados.
Na maioria dos casos, você chama a função SEARCH especificando-a na lista SELECT ou na cláusula WHERE de uma instrução SELECT. Se a função for usada como um filtro de cláusula WHERE, a consulta retornará linhas quando a função retornar TRUE.
A função SEARCH não requer configuração nem privilégios adicionais. Se estiver usando uma função que tenha privilégios para acessar os dados em uma coluna, você poderá pesquisar esses dados usando a função SEARCH.
As próximas seções contêm mais informações sobre a função SEARCH e sobre como otimizar o desempenho da consulta quando você a utiliza:
Uso da função SEARCH¶
A função SEARCH encontra dados de caracteres (texto) em colunas especificadas de uma ou mais tabelas, incluindo campos nas colunas VARIANT, OBJECT e ARRAY.
Quando você usa a função SEARCH, um analisador de texto divide o texto em tokens, que são unidades discretas de texto, como palavras ou números. Um analisador padrão será aplicado se você não especificar um. O analisador extrai tokens dos termos de pesquisa e dos dados. Se qualquer token extraído dos termos de pesquisa corresponder exatamente a qualquer token extraído de qualquer coluna ou campo especificado, a função retornará TRUE.
O exemplo a seguir procura a cadeia de caracteres LEOPARD
no texto snow leopard
:
SELECT SEARCH('snow leopard','LEOPARD');
+----------------------------------+
| SEARCH('SNOW LEOPARD','LEOPARD') |
|----------------------------------|
| True |
+----------------------------------+
O exemplo a seguir procura a cadeia de caracteres LION
no texto snow leopard
:
SELECT SEARCH('snow leopard','LION');
+-------------------------------+
| SEARCH('SNOW LEOPARD','LION') |
|-------------------------------|
| False |
+-------------------------------+
A lista de termos de pesquisa é uma lista OR, portanto, qualquer correspondência em qualquer termo listado retorna TRUE. Se você precisar de uma lógica diferente para a pesquisa, você pode modificar a consulta. Por exemplo, você pode chamar a função SEARCH várias vezes em uma consulta com condições AND.
Para obter mais informações sobre essa função e exemplos adicionais, consulte SEARCH.
Uso da função SEARCH_IP¶
A função SEARCH_IP encontra endereços IPv4 válidos em colunas de cadeias de caracteres especificadas de uma ou mais tabelas, incluindo campos nas colunas VARIANT, OBJECT e ARRAY. A pesquisa é baseada em um único endereço IP que você especifica. Se esse endereço IP corresponder exatamente a um endereço IP na coluna ou campo especificado, a função retornará TRUE.
O exemplo a seguir procura o endereço IP 10.10.10.1
no texto 192.0.2.146
:
SELECT SEARCH_IP('192.0.2.146','10.10.10.1');
+---------------------------------------+
| SEARCH_IP('192.0.2.146','10.10.10.1') |
|---------------------------------------|
| False |
+---------------------------------------+
Para obter mais informações sobre essa função e exemplos adicionais, consulte SEARCH_IP.
Otimizar consultas que usam a função SEARCH¶
Para melhorar o desempenho das consultas que usam a função, você pode opcionalmente habilitar a otimização de pesquisa FULL_TEXT em uma coluna específica ou um conjunto de colunas em uma tabela. Quando você ativa a otimização de pesquisa, um novo caminho de acesso à pesquisa é criado e mantido.