GIN 代表廣義反向索引。GIN 設計用於處理要索引的項目是複合值,且索引要處理的查詢需要搜尋出現在複合項目中的元素值的情況。例如,項目可以是文件,而查詢可以是搜尋包含特定字詞的文件。
我們使用字詞 項目來指要索引的複合值,並使用字詞 金鑰來指元素值。GIN 始終儲存和搜尋金鑰,而不是項目值本身。
一個 GIN 索引儲存一組 (key, 發文清單) 對,其中一個 發文清單 是其中 key 出現的一組列 ID。由於一個項目可以包含多個 key,所以同一個列 ID 可以出現在多個發文清單中。每個 key 值只儲存一次,因此對於 key 出現很多次的案例,GIN 索引非常精簡。
GIN 在於 GIN 存取方法程式碼不需要知道它加速的特定運算,因此具有廣泛性。反之,它使用為特定資料類型定義的自訂策略。策略定義如何從索引項目和查詢條件中萃取 key,以及如何判斷包含查詢中部分 key 值的列是否實際上滿足查詢。
GIN 的一個優點是,它允許資料類型專家,而不是資料庫專家,開發具有適當存取方法的自訂資料類型。這與使用 GiST 的優點非常類似。
PostgreSQL 中的 GIN 實作主要由 Teodor Sigaev 和 Oleg Bartunov 維護。他們的 網站 上有更多關於 GIN 的資訊。
如果您在文件檔中看到任何不正確、與您對特定功能的體驗不符,或需要進一步說明的地方,請使用 此表單 回報文件檔問題。