Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

diferença de critérios de pesquisa entre Like vs Contains() no oracle


LIKE e CONTAINS são métodos fundamentalmente diferentes de pesquisa.

LIKE é um matcher de padrões de string muito simples - ele reconhece dois curingas (%) e (_) que correspondem a zero ou mais, ou exatamente um caractere, respectivamente. No seu caso, %a%e% corresponde a dois registros em sua tabela - ele procura zero ou mais caracteres seguidos por a , seguido por zero ou mais caracteres seguidos por e , seguido por zero ou mais caracteres. Também é muito simplista em seu valor de retorno:ele retorna "combinado" ou "não correspondido" - sem tons de cinza.

CONTAINS é uma poderosa ferramenta de pesquisa que usa um índice de contexto, que constrói uma espécie de árvore de palavras que pode ser pesquisada usando a sintaxe de pesquisa CONTAINS. Ele pode ser usado para pesquisar uma única palavra, uma combinação de palavras e possui uma sintaxe própria rica, como operadores booleanos (AND, NEAR, ACCUM). Também é mais poderoso porque, em vez de retornar um simples "combinado" ou "não correspondido", retorna uma "pontuação", que pode ser usada para classificar os resultados em ordem de relevância; por exemplo. CONTAINS(col, 'dog NEAR cat') retornará uma pontuação mais alta para um documento onde essas duas palavras são encontradas juntas.