Junior — Middle
Welke gegevensopslagmechanisme implementeert full-text zoeken in de PostgreSQL-database?
sobes.tech AI
Antwoord van AI
In PostgreSQL wordt voor het implementeren van fulltekst zoeken het indexmechanisme van het type GiST (Generalized Search Tree) of GIN (Generalized Inverted Index) gebruikt. De basis is de voorstelling van de tekst als tsvector, een structuur die de tekst opsplitst in lemmata (woorden), deze normaliseert en de posities opslaat.
Bij zoeken wordt tsquery gebruikt, een query die wordt vergeleken met tsvector. GIN-indexen zijn bijzonder efficiënt voor snelle zoekopdrachten op meerdere woorden, omdat ze een omgekeerde index opbouwen die snel documenten kan vinden die de benodigde lemmata bevatten.
Voorbeeld van het maken van een index voor fulltekst zoeken:
CREATE INDEX idx_fts ON documents USING GIN(to_tsvector('russian', content));
Vervolgens kunnen queries worden uitgevoerd:
SELECT * FROM documents WHERE to_tsvector('russian', content) @@ to_tsquery('russian', 'поиск & база');