Junior — Middle
Qual meccanismo di archiviazione dei dati implementa la ricerca full-text nel database PostgreSQL?
sobes.tech AI
Risposta dell'AI
In PostgreSQL, per implementare la ricerca full-text si utilizza il meccanismo di indici di tipo GiST (Generalized Search Tree) o GIN (Generalized Inverted Index). La base è la rappresentazione del testo sotto forma di tsvector, una struttura che suddivide il testo in lemmi (parole), li normalizza e memorizza le posizioni.
Per la ricerca si utilizza tsquery, una query confrontata con tsvector. Gli indici GIN sono particolarmente efficaci per ricerche rapide su più parole, poiché costruiscono un indice invertito che permette di trovare rapidamente i documenti contenenti i lemmi necessari.
Esempio di creazione di un indice per la ricerca full-text:
CREATE INDEX idx_fts ON documents USING GIN(to_tsvector('russian', content));
Successivamente, si possono eseguire query:
SELECT * FROM documents WHERE to_tsvector('russian', content) @@ to_tsquery('russian', 'поиск & база');