GIN 的意思是基因倒排索引(Generalized Inverted Index)。它是一个存储(key, posting list)对集合的索引结构,这里的"posting list"是一组出现 key 的行。每一个被索引的值都可能包含多个 key ,因此同一个行 ID 可能会出现在多个 posting list 中。
在一般意义上,GIN 索引不需要关心相关联的操作。相反,它使用用户在特定数据类型上定义的策略。
GIN 的一个优点是它允许开发自定义数据类型时附带适当的访问方法,这件事可以由深入了解该数据类型的专家来做,而不是由数据库专家来做。这一点与使用 GiST 很相似。
PostgreSQL 中的 GIN 实现主要由 Teodor Sigaev 和 Oleg Bartunov 维护。关于 GIN 的更多信息可以访问他们的网站。