Junior — Middle
Qual mecanismo de armazenamento de dados implementa a pesquisa de texto completo na base de dados PostgreSQL?
sobes.tech IA
Resposta da IA
No PostgreSQL, para implementar uma pesquisa de texto completo, utiliza-se o mecanismo de índices do tipo GiST (Generalized Search Tree) ou GIN (Generalized Inverted Index). A base é a representação do texto na forma de tsvector, uma estrutura que divide o texto em lexemas (palavras), normaliza-os e armazena suas posições.
Para a pesquisa, usa-se tsquery, uma consulta que é comparada com tsvector. Os índices GIN são especialmente eficientes para buscas rápidas por múltiplas palavras, pois constroem um índice invertido que permite encontrar rapidamente os documentos que contêm os lexemas necessários.
Exemplo de criação de índice para busca de texto completo:
CREATE INDEX idx_fts ON documents USING GIN(to_tsvector('russian', content));
Depois, podem-se fazer consultas:
SELECT * FROM documents WHERE to_tsvector('russian', content) @@ to_tsquery('russian', 'поиск & база');