Junior — Middle
Milyen adattároló mechanizmus valósítja meg a teljes szöveg keresést a PostgreSQL adatbázisban?
sobes.tech MI
Válasz az MI-től
A PostgreSQL-ben a teljes szöveg keresés megvalósításához GiST (Generalized Search Tree) vagy GIN (Generalized Inverted Index) index mechanizmust használnak. Az alap a szöveg tsvector formában való ábrázolása, amely felosztja a szöveget lexémákra (szavakra), normalizálja azokat, és tárolja pozícióikat.
A kereséshez a tsquery-t használják, amely összehasonlítódik a tsvectorral. A GIN indexek különösen hatékonyak gyors kereséshez több szónál, mivel fordított indexet építenek, amely lehetővé teszi a szükséges lexémákat tartalmazó dokumentumok gyors megtalálását.
Példa index létrehozására teljes szöveg kereséshez:
CREATE INDEX idx_fts ON documents USING GIN(to_tsvector('russian', content));
Ezután lekérdezéseket lehet végrehajtani:
SELECT * FROM documents WHERE to_tsvector('russian', content) @@ to_tsquery('russian', 'поиск & база');