Em relação à busca por texto utilizando os operadores LIKE, ...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é a C. O mecanismo de Full Text Search (FTS) oferecido pelo PostgreSQL é avançado e permite busca de textos considerando sinônimos, variação morfológica das palavras e também pode ser configurado para lidar com erros de ortografia por meio da semelhança entre os termos. Este tipo de busca é especialmente útil para desenvolver sistemas de busca internos em aplicações onde se deseja capacidade de recuperação eficiente e relevante de dados textuais.
O Full Text Search funciona a partir da criação de índices que são otimizados para pesquisa textual, utilizando os tipos tsvector, que representa um documento de texto de maneira otimizada para busca, e tsquery, que representa a consulta de texto. A comparação entre um tsquery
e um tsvector
é feita utilizando o operador @@. Esse processo leva em conta não apenas a presença de palavras, mas também a significância delas no texto, o que torna o FTS mais potente que buscas baseadas unicamente em operadores como LIKE
ou SIMILAR TO
.
O FTS lida com stemming (reduzindo palavras ao seu radical básico), sinônimos, e outros aspectos que tornam a busca por texto mais eficiente e menos sujeita a problemas de variações ortográficas ou morfológicas. Portanto, caso um usuário cometa um erro ao digitar uma palavra-chave, o sistema FTS tem a capacidade de retornar resultados relevantes apesar desse erro, ao invés de simplesmente falhar em encontrar correspondência.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Alternativa correta: C.
a) ERRADA: LIKE não resolve problemas de ortografia. Se você mandar ele pesquisar por "qustoes" ao invés de "questoes" ele vai pesquisar o termo errado;
b) ERRADA: a pesquisa é baseada em strings. A diferença dele pro LIKE é que no SIMILAR TO é necessário que os resultados sejam idênticos à toda string passada, e não somente parte dela (como no LIKE);
c) GABARITO: FTS pode ser usado para buscar textos similar ao LIKE e ao SIMILAR TO, com a diferença de também ter suporte ao ISPELL, que corrige erros de ortografia em palavras passadas como parâmetros de busca (fonte: vai no subtítulo "search configurations" desse posthttps://www.compose.com/articles/mastering-postgresql-tools-full-text-search-and-phrase-search/ );
d) ERRADA: o "@@" do postgresql busca por padrões armazenados em um vetor, equanto o "RLIKE" do mysql trabalha com expressões regulares;
e) ERRADA: não achei o erro desta. Alguém comenta, por gentileza.
Gabarito: C
O operador SIMILAR TO do PostgreSQL é equivalente ao operador RLIKE do MySQL.
Quanto à alternativa E, creio que o erro esteja em "são conjuntos de trigrans das strings informadas", porque tsquery e tsvector não têm relação com trigramas, mas com uma lista de lexemas (palavras de dicionário).
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo