DevGuideTK
← Trilha Backend

Busca textual

Índice invertido, relevância e os motores de busca como Elasticsearch e OpenSearch.

Busca textual é encontrar documentos pelas palavras que o usuário digita, do jeito que ele digita: sem acento, no plural, com erro de digitação, e com os mais relevantes primeiro.

O LIKE '%texto%' não faz nada disso: varre a tabela inteira e não acha "tênis" quando o usuário digita "tenis". A busca textual resolve com um índice de palavras.

  • O índice invertido liga cada palavra aos documentos que a contêm.
  • A análise do texto tira acentos, reduz palavras ao radical e descarta as vazias.
  • A relevância ordena os resultados pelo quanto cada um combina com a busca.
  • O PostgreSQL resolve muitos casos; motores como OpenSearch e Elasticsearch vão além.