伝統的に、新しいインデックスメソッドの実装は、非常に難しい作業を意味していました。 ロックマネージャやログ先行書き込みなどデータベースの内部動作を理解する必要がありました。 GiSTインタフェースは高レベルな抽象化を持ち、アクセスメソッドの実装者には、アクセスするデータ型のセマンティックスのみの実装を要求します。 GiST層自身が並行性、ログ処理、ツリー構造の検索を行います。
この拡張性と、他の、扱うことができるデータを対象とした標準検索ツリーの拡張性とを混同すべきではありません。 例えば、PostgreSQLは拡張可能なB-treeとハッシュインデックスをサポートしています。 これは、PostgreSQLを使用して、任意のデータ型に対するB-treeやハッシュを構築することができることを意味します。 しかし、B-treeは範囲述語(<、=、>)のみをサポートし、ハッシュインデックスは等価性問い合わせのみをサポートします。
ですから、PostgreSQLのB-treeで例えば画像群をインデックス付けする場合、"画像xは画像yと同じか"、"画像xは画像yより小さいか"、"画像xは画像yより大きいか"といった問い合わせのみ発行することができます。 この文脈でどのように"同じか"や"より小さいか"、"より大きいか"を定義するかに依存して、これが有意なこともあるでしょう。 しかし、GiSTを基にしたインデックスを使用すれば、問題分野に特化した、おそらくは、"馬の画像を全て見つけたい"、"露出オーバーの写真を全て見つけたい"といった質問に答えられる手段を作成することができます。
GiSTアクセスメソッドを有効にし、実行するために行なわなければならないことは、ツリーのキーの動作を定義する、7個のユーザ定義のメソッドを実装することです。 当然ながら、これらのメソッドは手の込んだ問い合わせをサポートするためかなり意匠を凝らす必要があります。 しかし、全ての標準的な問い合わせ(B-treeやR-treeなど)ではこれらは、相対的に見てごく簡単です。 まとめると、GiSTは汎用性、コード再利用、整理されたインタフェースと拡張性を兼ね備えたものです。