In computing,
GiST or Generalized Search Tree, is a
data structure and
API that can be used to build a variety of disk-based
search trees. GiST is a generalization of the
B+ tree, providing a concurrent and recoverable height-balanced search tree infrastructure without making any assumptions about the type of data being stored, or the queries being serviced. GiST can be used to easily implement a range of well-known indexes, including
B+ trees,
R-trees, hB-trees, RD-trees, and many others; it also allows for easy development of specialized indexes for new data types. It cannot be used directly to implement non-height-balanced trees such as
quad trees or
prefix trees (tries), though like prefix trees it does support compression, including
lossy compression. GiST can be used for any data type that can be naturally ordered into a hierarchy of
supersets. Not only is it extensible in terms of data type support and tree layout, it allows the extension writer to support any query predicates that they choose. The most widely used GiST implementation is in the
PostgreSQL relational database; it was also implemented in the
Informix Universal Server, and as a standalone library, libgist.