GIN
জিন
Generalized Inverted Index — value থেকে তার containing rows-এর তালিকা; full-text search আর array containment-এর engine।
also: generalized-inverted-index, inverted-index
B-tree key→row; GIN উল্টো: element→row list (posting tree)।
CREATE INDEX ON docs USING gin (to_tsvector('english', body));
SELECT * FROM docs WHERE to_tsvector('english', body) @@ 'database & index';
CREATE INDEX ON tickets USING gin (tags); -- tags text[]
SELECT * FROM tickets WHERE tags @> '{urgent,db}';
- Write-heavy table-এ ব্যয়বহুল — এক row insert অনেক posting update;
fastupdatepending list দিয়ে batch করে tsvector-এ position data — phrase query, ranking (ts_rank) সম্ভব- Array/jsonb containment (
@>,?) — GIN-ই প্রধান রাস্তা
Search-এর জগতে inverted index-ই মূল স্থাপত্য — Elasticsearch-এর কেন্দ্রও এটা।