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.