{"Entry":{"collection":"indexam","key":"spgist","name":"SP-GiST","aliases":["space-partitioned gist","radix tree","quadtree","nearest neighbor"],"metadata":{"aliases":["space-partitioned gist","radix tree","quadtree","nearest neighbor"],"category":"Extensible search","content_hash":"4593caf2b9aa958c5667b1a7641ca3ec7179c816c087541874237bf46114de3b","derived_content_hash":"b6239d553f00200fe8680cb43819a8d75f4c47ec860bba03d85cd2517d1b1c83","imported_at":"2026-09-30T00:40:37.224486+08:00","name":"SP-GiST","name_zh":"SP-GiST","slug":"spgist","summary":"SP-GiST indexes, like GiST indexes, offer an infrastructure that supports various kinds of searches. SP-GiST permits implementation of a wide range of different non-balanced disk-based data structures, such as quadtrees, k-d trees, and radix trees (tries). As an example, the standard distribution of PostgreSQL includes SP-GiST operator classes for two-dimensional points, which support indexed queries using these operators:"}},"Definition":{"Collection":"indexam","Key":"spgist","SourceDatabase":"center","Version":"18","SourceTable":"index_am","SourceKey":"spgist","SourceRevision":"0e39ebd4fddbd990280e62f4503f0bd18765bbd990dccf4cba976b5d47da45e7","Facts":{"capabilities":[{"evidence":[{"anchor":"INDEXES-ORDERING","file":"indexes-ordering.html","label":"PostgreSQL 18.6 · indexes-ordering","quote":"In addition to simply finding the rows to be returned by a query, an index may be able to deliver them in a specific sorted order. This allows a query's ORDER BY specification to be honored without a separate sorting step. Of the index types currently supported by PostgreSQL , only B-tree can produce sorted output — the other index types return matching rows in an unspecified, implementation-dependent order.","sha256":"85fac99c7c66ed19dd021f12b5cc53ce18aa5bfa4b56c8c168317f99b8f12d3b","url":"/docs/18/indexes-ordering.html#INDEXES-ORDERING"}],"key":"ordered","label":"Sorted output","note":"Ordinary sorted output is distinct from ordering by an operator, such as nearest-neighbor distance.","state":"no","value":"No"},{"evidence":[{"anchor":"INDEXES-UNIQUE","file":"indexes-unique.html","label":"PostgreSQL 18.6 · indexes-unique","quote":"Currently, only B-tree indexes can be declared unique.","sha256":"7c3eac7fa180b22534ff01df0c68155f15b6b360ffe35507c5266059116840db","url":"/docs/18/indexes-unique.html#INDEXES-UNIQUE"}],"key":"unique","label":"Unique keys","note":"This means a unique index. Exclusion constraints use a different contract.","state":"no","value":"No"},{"evidence":[{"anchor":"INDEXES-MULTICOLUMN","file":"indexes-multicolumn.html","label":"PostgreSQL 18.6 · indexes-multicolumn","quote":"Currently, only the B-tree, GiST, GIN, and BRIN index types support multiple-key-column indexes. Whether there can be multiple key columns is independent of whether INCLUDE columns can be added to the index. Indexes can have up to 32 columns, including INCLUDE columns. (This limit can be altered when building PostgreSQL ; see the file pg_config_manual.h .)","sha256":"c0a799ec49b8ef057a63d465fb1d72a3b81e16d652c28a71734d45592d081202","url":"/docs/18/indexes-multicolumn.html#INDEXES-MULTICOLUMN"}],"key":"multicolumn","label":"Multiple key columns","note":"Multiple search keys are distinct from non-key INCLUDE payload columns.","state":"no","value":"No"},{"evidence":[{"anchor":"SQL-CREATEINDEX","file":"sql-createindex.html","label":"PostgreSQL 18.6 · sql-createindex","quote":"Currently, the B-tree, GiST and SP-GiST index access methods support this feature. In these indexes, the values of columns listed in the INCLUDE clause are included in leaf tuples which correspond to heap tuples, but are not included in upper-level index entries used for tree navigation.","sha256":"6aa00da55815d13d0355dd25cb1cdb603fa36964993f164d1b6f486011282580","url":"/docs/18/sql-createindex.html#SQL-CREATEINDEX"}],"key":"include","label":"INCLUDE columns","note":"Payload columns do not become search keys. Wide payloads can exceed the index tuple-size limit.","state":"yes","value":"Yes"},{"evidence":[{"anchor":"INDEXES-INDEX-ONLY-SCANS","file":"indexes-index-only-scans.html","label":"PostgreSQL 18.6 · indexes-index-only-scans","quote":"The index type must support index-only scans. B-tree indexes always do. GiST and SP-GiST indexes support index-only scans for some operator classes but not others. Other index types have no support. The underlying requirement is that the index must physically store, or else be able to reconstruct, the original data value for each index entry. As a counterexample, GIN indexes cannot support index-only scans because each index entry typically holds only part of the original data value.","sha256":"2322ec12b82f3fd01ee4072049caaa5a0190148ac68d98c0fcd6eda958828a83","url":"/docs/18/indexes-index-only-scans.html#INDEXES-INDEX-ONLY-SCANS"}],"key":"index_only","label":"Index-only scans","note":"The query must use covered values; visibility-map state determines whether heap visits can be avoided.","state":"conditional","value":"Conditional"},{"evidence":[{"anchor":"INDEXES-TYPE-SPGIST","file":"indexes-types.html","label":"PostgreSQL 18.6 · indexes-types","quote":"Like GiST, SP-GiST supports “ nearest-neighbor ” searches. For SP-GiST operator classes that support distance ordering, the corresponding operator is listed in the “ Ordering Operators ” column in Table 65.2 .","sha256":"cee340145a2ef5fbd807f66755b10d22bb049e328c460f572f45ad6193e7e4a1","url":"/docs/18/indexes-types.html#INDEXES-TYPE-SPGIST"}],"key":"distance","label":"Distance ordering","note":"Availability depends on the chosen operator class and ordering operator.","state":"conditional","value":"Conditional"},{"evidence":[{"anchor":"PARALLEL-SCANS","file":"parallel-plans.html","label":"PostgreSQL 18.6 · parallel-plans","quote":"In a parallel index scan or parallel index-only scan , the cooperating processes take turns reading data from the index. Currently, parallel index scans are supported only for btree indexes. Each process will claim a single index block and will scan and return all tuples referenced by that block; other processes can at the same time be returning tuples from a different index block. The results of a parallel btree scan are returned in sorted order within each worker process.","sha256":"62207d207bead82b01b59dc119c4f95856f08655cc11d4699a05a40867ed2070","url":"/docs/18/parallel-plans.html#PARALLEL-SCANS"}],"key":"parallel_scan","label":"Parallel index scan","note":"A cooperating scan of one index is distinct from a parallel bitmap heap scan or separate serial scans under Parallel Append.","state":"no","value":"No"},{"evidence":[{"anchor":"SQL-CREATEINDEX","file":"sql-createindex.html","label":"PostgreSQL 18.6 · sql-createindex","quote":"PostgreSQL can build indexes while leveraging multiple CPUs in order to process the table rows faster. This feature is known as parallel index build . For index methods that support building indexes in parallel (currently, B-tree, GIN, and BRIN), maintenance_work_mem specifies the maximum amount of memory that can be used by each index build operation as a whole, regardless of how many worker processes were started. Generally, a cost model automatically determines how many worker processes should be requested, if any.","sha256":"6aa00da55815d13d0355dd25cb1cdb603fa36964993f164d1b6f486011282580","url":"/docs/18/sql-createindex.html#SQL-CREATEINDEX"}],"key":"parallel_build","label":"Parallel index build","note":"Parallel construction is separate from parallel scans. Worker availability, settings and build phases also matter.","state":"no","value":"No"}],"description":["SP-GiST indexes, like GiST indexes, offer an infrastructure that supports various kinds of searches. SP-GiST permits implementation of a wide range of different non-balanced disk-based data structures, such as quadtrees, k-d trees, and radix trees (tries). As an example, the standard distribution of PostgreSQL includes SP-GiST operator classes for two-dimensional points, which support indexed queries using these operators:"],"description_zh":"spgist 索引访问方法。","description_zh_html":"\u003cp\u003espgist 索引访问方法。\u003c/p\u003e\u003cdl\u003e\u003cdt\u003e有序输出\u003c/dt\u003e\u003cdd\u003e\u003ccode\u003e否\u003c/code\u003e\u003c/dd\u003e\u003cdt\u003e唯一键\u003c/dt\u003e\u003cdd\u003e\u003ccode\u003e否\u003c/code\u003e\u003c/dd\u003e\u003cdt\u003e多键列\u003c/dt\u003e\u003cdd\u003e\u003ccode\u003e否\u003c/code\u003e\u003c/dd\u003e\u003cdt\u003eINCLUDE 列\u003c/dt\u003e\u003cdd\u003e\u003ccode\u003e是\u003c/code\u003e\u003c/dd\u003e\u003cdt\u003e仅索引扫描\u003c/dt\u003e\u003cdd\u003e\u003ccode\u003eConditional\u003c/code\u003e\u003c/dd\u003e\u003cdt\u003e距离排序\u003c/dt\u003e\u003cdd\u003e\u003ccode\u003eConditional\u003c/code\u003e\u003c/dd\u003e\u003cdt\u003e并行索引扫描\u003c/dt\u003e\u003cdd\u003e\u003ccode\u003e否\u003c/code\u003e\u003c/dd\u003e\u003cdt\u003e并行索引构建\u003c/dt\u003e\u003cdd\u003e\u003ccode\u003e否\u003c/code\u003e\u003c/dd\u003e\u003c/dl\u003e\u003ch3\u003e同版本中文手册节选\u003c/h3\u003e\u003cp\u003e\n   与 GiST 一样，SP-GiST 索引也提供一种支持多种搜索的基础设施。SP-GiST 允许实现大量不同的、非平衡的、基于磁盘的数据结构，例如四叉树、k-d 树和基数树（trie）。例如，\u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e 标准发布版中包含了用于二维点的 SP-GiST 操作符类，它支持使用下列操作符的索引化查询：\n\n\u003c/p\u003e\u003cp\u003e\n\n   （这些操作符的含义见\u003ca class=\"xref\" href=\"/zh/docs/18/functions-geometry.html\"\u003e第 9.11 节\u003c/a\u003e。）标准发布版自带的 SP-GiST 操作符类记录在\u003ca class=\"xref\" href=\"/zh/docs/18/spgist.html#SPGIST-BUILTIN-OPCLASSES-TABLE\"\u003e表 65.2\u003c/a\u003e 中。更多信息见\u003ca class=\"xref\" href=\"/zh/docs/18/spgist.html\"\u003e第 65.3 节\u003c/a\u003e。\n  \u003c/p\u003e\u003cp\u003e\n   与 GiST 一样，SP-GiST 支持\u003cspan class=\"quote\"\u003e“\u003cspan class=\"quote\"\u003e最近邻\u003c/span\u003e”\u003c/span\u003e搜索。对于支持距离排序的 SP-GiST 操作符类，相应操作符列在\u003ca class=\"xref\" href=\"/zh/docs/18/spgist.html#SPGIST-BUILTIN-OPCLASSES-TABLE\"\u003e表 65.2\u003c/a\u003e 的\u003cspan class=\"quote\"\u003e“\u003cspan class=\"quote\"\u003e排序操作符\u003c/span\u003e”\u003c/span\u003e列中。\n  \u003c/p\u003e\u003cp\u003e\u003ca href=\"/zh/docs/18/indexes-types.html#INDEXES-TYPE-SPGIST\"\u003e查看完整中文手册与上下文\u003c/a\u003e。\u003c/p\u003e","evidence_kind":"documentation","facts":[{"label":"Sorted output","value":"No"},{"label":"Unique keys","value":"No"},{"label":"Multiple key columns","value":"No"},{"label":"INCLUDE columns","value":"Yes"},{"label":"Index-only scans","value":"Conditional"},{"label":"Distance ordering","value":"Conditional"},{"label":"Parallel index scan","value":"No"},{"label":"Parallel index build","value":"No"}],"facts_zh":[{"label":"有序输出","value":"不支持"},{"label":"唯一键","value":"不支持"},{"label":"多键列","value":"不支持"},{"label":"INCLUDE 附加列","value":"支持"},{"label":"仅索引扫描","value":"有条件"},{"label":"按距离排序","value":"有条件"},{"label":"并行索引扫描","value":"不支持"},{"label":"并行构建索引","value":"不支持"}],"related":[{"label":"9.11. Geometric Functions and Operators","url":"/docs/18/functions-geometry.html"},{"label":"Table 65.2. Built-in SP-GiST Operator Classes","url":"/docs/18/spgist.html#SPGIST-BUILTIN-OPCLASSES-TABLE"},{"label":"65.3. SP-GiST Indexes","url":"/docs/18/spgist.html"},{"label":"pg_am","url":"/wiki/catalog/pg_am/?v=18"},{"label":"pg_opclass","url":"/wiki/catalog/pg_opclass/?v=18"},{"label":"pg_opfamily","url":"/wiki/catalog/pg_opfamily/?v=18"},{"label":"pg_amop","url":"/wiki/catalog/pg_amop/?v=18"},{"label":"pg_amproc","url":"/wiki/catalog/pg_amproc/?v=18"},{"label":"CREATE INDEX","url":"/wiki/sql/create-index/?v=18"},{"label":"Operator classes and families","url":"/docs/18/indexes-opclass.html"},{"label":"Index access method interface","url":"/docs/18/indexam.html"},{"label":"Storage parameters","url":"/wiki/relopts/?v=18"}],"release":{"channel":"stable","evidence_kind":"English manual extraction","label":"18.6","major":"18","manifest":{"major":"18","release":"18.6","source_mode":"en SGML built with pinned official archive","source_sha256":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","source_url":"https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2"},"ref":"PostgreSQL 18.6 Documentation","revision":"0e39ebd4fddbd990280e62f4503f0bd18765bbd990dccf4cba976b5d47da45e7"},"runtime_verified":false,"sections":[{"blocks":[{"paragraphs":["SP-GiST indexes, like GiST indexes, offer an infrastructure that supports various kinds of searches. SP-GiST permits implementation of a wide range of different non-balanced disk-based data structures, such as quadtrees, k-d trees, and radix trees (tries). As an example, the standard distribution of PostgreSQL includes SP-GiST operator classes for two-dimensional points, which support indexed queries using these operators:"]},{"code":"\u003c\u003c   \u003e\u003e   ~=   \u003c@   \u003c\u003c|   |\u003e\u003e","paragraphs":[]},{"paragraphs":["(See Section 9.11 for the meaning of these operators.) The SP-GiST operator classes included in the standard distribution are documented in Table 65.2 . For more information see Section 65.3 ."]},{"paragraphs":["Like GiST, SP-GiST supports “ nearest-neighbor ” searches. For SP-GiST operator classes that support distance ordering, the corresponding operator is listed in the “ Ordering Operators ” column in Table 65.2 ."]}],"title":"Queries, operators and limitations"}],"sections_zh":[{"blocks":[{"paragraphs":["SP-GiST 与 GiST 一样，提供支持多种搜索方式的基础框架。SP-GiST 可实现多种基于磁盘的非平衡数据结构，例如四叉树、k-d 树和基数树（tries）。例如，PostgreSQL 标准发行版提供二维点的 SP-GiST 操作符类，支持使用下列运算符的索引查询："]},{"code":"\u003c\u003c   \u003e\u003e   ~=   \u003c@   \u003c\u003c|   |\u003e\u003e","paragraphs":[]},{"paragraphs":["（这些操作符的含义见 第 9.11 节 。）标准发布版自带的 SP-GiST 操作符类记录在 表 65.2 中。更多信息见 第 65.3 节 。"]},{"paragraphs":["与 GiST 一样，SP-GiST 支持 “ 最近邻 ” 搜索。对于支持距离排序的 SP-GiST 操作符类，相应操作符列在 表 65.2 的 “ 排序操作符 ” 列中。"]}],"title":"查询、操作符与限制"}],"signature":"CREATE INDEX name ON table_name USING spgist (column_name);","sources":[{"anchor":"INDEXES-TYPE-SPGIST","file":"indexes-types.html","label":"PostgreSQL 18.6: SP-GiST","sha256":"cee340145a2ef5fbd807f66755b10d22bb049e328c460f572f45ad6193e7e4a1","url":"/docs/18/indexes-types.html#INDEXES-TYPE-SPGIST"},{"anchor":"","file":"catalog-pg-am.html","label":"PostgreSQL 18.6 · catalog-pg-am","sha256":"579364179365a51945e2edb6481df5d198916c2c725e506f166824dedf08994c","url":"/docs/18/catalog-pg-am.html"},{"anchor":"","file":"hash-index.html","label":"PostgreSQL 18.6 · hash-index","sha256":"b994550220e1ee05648d09804c9eb2302834e07e261932420a96605d7c9c6140","url":"/docs/18/hash-index.html"},{"anchor":"","file":"indexam.html","label":"PostgreSQL 18.6 · indexam","sha256":"0a38f7c0ac0541f31e086c83a624e782c15367456578a6dd3329882516bc1080","url":"/docs/18/indexam.html"},{"anchor":"","file":"indexes-index-only-scans.html","label":"PostgreSQL 18.6 · indexes-index-only-scans","sha256":"2322ec12b82f3fd01ee4072049caaa5a0190148ac68d98c0fcd6eda958828a83","url":"/docs/18/indexes-index-only-scans.html"},{"anchor":"","file":"indexes-multicolumn.html","label":"PostgreSQL 18.6 · indexes-multicolumn","sha256":"c0a799ec49b8ef057a63d465fb1d72a3b81e16d652c28a71734d45592d081202","url":"/docs/18/indexes-multicolumn.html"},{"anchor":"","file":"indexes-opclass.html","label":"PostgreSQL 18.6 · indexes-opclass","sha256":"07de06abf3a2aff2a891a2789def434d9b76705e54d45ca5338dc13451ae2962","url":"/docs/18/indexes-opclass.html"},{"anchor":"","file":"indexes-ordering.html","label":"PostgreSQL 18.6 · indexes-ordering","sha256":"85fac99c7c66ed19dd021f12b5cc53ce18aa5bfa4b56c8c168317f99b8f12d3b","url":"/docs/18/indexes-ordering.html"},{"anchor":"","file":"indexes-unique.html","label":"PostgreSQL 18.6 · indexes-unique","sha256":"7c3eac7fa180b22534ff01df0c68155f15b6b360ffe35507c5266059116840db","url":"/docs/18/indexes-unique.html"},{"anchor":"","file":"parallel-plans.html","label":"PostgreSQL 18.6 · parallel-plans","sha256":"62207d207bead82b01b59dc119c4f95856f08655cc11d4699a05a40867ed2070","url":"/docs/18/parallel-plans.html"},{"anchor":"","file":"sql-createindex.html","label":"PostgreSQL 18.6 · sql-createindex","sha256":"6aa00da55815d13d0355dd25cb1cdb603fa36964993f164d1b6f486011282580","url":"/docs/18/sql-createindex.html"}],"storage_options":[{"description":["Controls how full the index method will try to pack index pages. For B-trees, leaf pages are filled to this percentage during initial index builds, and also when extending the index at the right (adding new largest key values). If pages subsequently become completely full, they will be split, leading to fragmentation of the on-disk index structure. B-trees use a default fillfactor of 90, but any integer value from 10 to 100 can be selected.","B-tree indexes on tables where many inserts and/or updates are anticipated can benefit from lower fillfactor settings at CREATE INDEX time (following bulk loading into the table). Values in the range of 50 - 90 can usefully “ smooth out ” the rate of page splits during the early life of the B-tree index (lowering fillfactor like this may even lower the absolute number of page splits, though this effect is highly workload dependent). The B-tree bottom-up index deletion technique described in Section 65.1.4.2 is dependent on having some “ extra ” space on pages to store “ extra ” tuple versions, and so can be affected by fillfactor (though the effect is usually not significant).","In other specific cases it might be useful to increase fillfactor to 100 at CREATE INDEX time as a way of maximizing space utilization. You should only consider this when you are completely sure that the table is static (i.e. that it will never be affected by either inserts or updates). A fillfactor setting of 100 otherwise risks harming performance: even a few updates or inserts will cause a sudden flood of page splits.","The other index methods use fillfactor in different but roughly analogous ways; the default fillfactor varies between methods."],"name":"fillfactor","source":{"anchor":"INDEX-RELOPTION-FILLFACTOR","file":"sql-createindex.html","label":"PostgreSQL 18.6 · sql-createindex","sha256":"6aa00da55815d13d0355dd25cb1cdb603fa36964993f164d1b6f486011282580","url":"/docs/18/sql-createindex.html#INDEX-RELOPTION-FILLFACTOR"},"url":"/wiki/relopts/spgist-fillfactor/?v=18"}],"tables_zh":[],"zh_from":{"authored_translation":"source-derived-structured-summary","body_sha256":"1694f34036a8af128423b39a854bd7096056fec5127a489fcb3ae14d0227f799","kind":"same-version-chinese-manual-with-source-derived-structured-summary","manual":{"anchor":"INDEXES-TYPE-SPGIST","build_id":107,"extraction":"concept-introduction","fragment_sha256":"d21d07d0690a8653ae1133be198ee12e12bf48001514cc1a56c136d22f2e8735","locale":"zh-Hans","page_key":"indexes-types.html","source_hash":"88d19a31beb78d185e353fcc53ddc8d44f9f2f55b5627361a271bbbb2d20cf80","source_revision":"unknown:rendered-translation-baseline","translated_from_revision":null,"translation_revision":"git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:08e987a66af27b98444a8057c256314eafa13611a3fb9e888214fc436824244b","url":"/zh/docs/18/indexes-types.html#INDEXES-TYPE-SPGIST","version":"18"},"runtime_rerun":false,"source_facts_revision":"0e39ebd4fddbd990280e62f4503f0bd18765bbd990dccf4cba976b5d47da45e7"}},"ManualEvidence":{"release":{"channel":"stable","evidence_kind":"English manual extraction","label":"18.6","major":"18","manifest":{"major":"18","release":"18.6","source_mode":"en SGML built with pinned official archive","source_sha256":"555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f","source_url":"https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2"},"ref":"PostgreSQL 18.6 Documentation","revision":"0e39ebd4fddbd990280e62f4503f0bd18765bbd990dccf4cba976b5d47da45e7"},"sources":[{"anchor":"INDEXES-TYPE-SPGIST","file":"indexes-types.html","label":"PostgreSQL 18.6: SP-GiST","sha256":"cee340145a2ef5fbd807f66755b10d22bb049e328c460f572f45ad6193e7e4a1","url":"/docs/18/indexes-types.html#INDEXES-TYPE-SPGIST"},{"anchor":"","file":"catalog-pg-am.html","label":"PostgreSQL 18.6 · catalog-pg-am","sha256":"579364179365a51945e2edb6481df5d198916c2c725e506f166824dedf08994c","url":"/docs/18/catalog-pg-am.html"},{"anchor":"","file":"hash-index.html","label":"PostgreSQL 18.6 · hash-index","sha256":"b994550220e1ee05648d09804c9eb2302834e07e261932420a96605d7c9c6140","url":"/docs/18/hash-index.html"},{"anchor":"","file":"indexam.html","label":"PostgreSQL 18.6 · indexam","sha256":"0a38f7c0ac0541f31e086c83a624e782c15367456578a6dd3329882516bc1080","url":"/docs/18/indexam.html"},{"anchor":"","file":"indexes-index-only-scans.html","label":"PostgreSQL 18.6 · indexes-index-only-scans","sha256":"2322ec12b82f3fd01ee4072049caaa5a0190148ac68d98c0fcd6eda958828a83","url":"/docs/18/indexes-index-only-scans.html"},{"anchor":"","file":"indexes-multicolumn.html","label":"PostgreSQL 18.6 · indexes-multicolumn","sha256":"c0a799ec49b8ef057a63d465fb1d72a3b81e16d652c28a71734d45592d081202","url":"/docs/18/indexes-multicolumn.html"},{"anchor":"","file":"indexes-opclass.html","label":"PostgreSQL 18.6 · indexes-opclass","sha256":"07de06abf3a2aff2a891a2789def434d9b76705e54d45ca5338dc13451ae2962","url":"/docs/18/indexes-opclass.html"},{"anchor":"","file":"indexes-ordering.html","label":"PostgreSQL 18.6 · indexes-ordering","sha256":"85fac99c7c66ed19dd021f12b5cc53ce18aa5bfa4b56c8c168317f99b8f12d3b","url":"/docs/18/indexes-ordering.html"},{"anchor":"","file":"indexes-unique.html","label":"PostgreSQL 18.6 · indexes-unique","sha256":"7c3eac7fa180b22534ff01df0c68155f15b6b360ffe35507c5266059116840db","url":"/docs/18/indexes-unique.html"},{"anchor":"","file":"parallel-plans.html","label":"PostgreSQL 18.6 · parallel-plans","sha256":"62207d207bead82b01b59dc119c4f95856f08655cc11d4699a05a40867ed2070","url":"/docs/18/parallel-plans.html"},{"anchor":"","file":"sql-createindex.html","label":"PostgreSQL 18.6 · sql-createindex","sha256":"6aa00da55815d13d0355dd25cb1cdb603fa36964993f164d1b6f486011282580","url":"/docs/18/sql-createindex.html"}]},"MeasuredEvidence":{"runtime_verified":false}},"Text":{"Collection":"indexam","Key":"spgist","SourceDatabase":"center","Version":"18","Locale":"en","Title":"SP-GiST","Summary":"SP-GiST indexes, like GiST indexes, offer an infrastructure that supports various kinds of searches. SP-GiST permits implementation of a wide range of different non-balanced disk-based data structures, such as quadtrees, k-d trees, and radix trees (tries). As an example, the standard distribution of PostgreSQL includes SP-GiST operator classes for two-dimensional points, which support indexed queries using these operators:","BodyHTML":"\u003cp\u003eSP-GiST indexes, like GiST indexes, offer an infrastructure that supports various kinds of searches. SP-GiST permits implementation of a wide range of different non-balanced disk-based data structures, such as quadtrees, k-d trees, and radix trees (tries). As an example, the standard distribution of PostgreSQL includes SP-GiST operator classes for two-dimensional points, which support indexed queries using these operators:\u003c/p\u003e","SourceRevision":"0e39ebd4fddbd990280e62f4503f0bd18765bbd990dccf4cba976b5d47da45e7","ContentHash":"c9245dce53924394f3b7225bf2fed0f3d7e1847119b70a76e7437292f4a279f7","Payload":{"description":["SP-GiST indexes, like GiST indexes, offer an infrastructure that supports various kinds of searches. SP-GiST permits implementation of a wide range of different non-balanced disk-based data structures, such as quadtrees, k-d trees, and radix trees (tries). As an example, the standard distribution of PostgreSQL includes SP-GiST operator classes for two-dimensional points, which support indexed queries using these operators:"],"related":[{"label":"9.11. Geometric Functions and Operators","url":"/docs/18/functions-geometry.html"},{"label":"Table 65.2. Built-in SP-GiST Operator Classes","url":"/docs/18/spgist.html#SPGIST-BUILTIN-OPCLASSES-TABLE"},{"label":"65.3. SP-GiST Indexes","url":"/docs/18/spgist.html"},{"label":"pg_am","url":"/wiki/catalog/pg_am/?v=18"},{"label":"pg_opclass","url":"/wiki/catalog/pg_opclass/?v=18"},{"label":"pg_opfamily","url":"/wiki/catalog/pg_opfamily/?v=18"},{"label":"pg_amop","url":"/wiki/catalog/pg_amop/?v=18"},{"label":"pg_amproc","url":"/wiki/catalog/pg_amproc/?v=18"},{"label":"CREATE INDEX","url":"/wiki/sql/create-index/?v=18"},{"label":"Operator classes and families","url":"/docs/18/indexes-opclass.html"},{"label":"Index access method interface","url":"/docs/18/indexam.html"},{"label":"Storage parameters","url":"/wiki/relopts/?v=18"}],"sections":[{"blocks":[{"paragraphs":["SP-GiST indexes, like GiST indexes, offer an infrastructure that supports various kinds of searches. SP-GiST permits implementation of a wide range of different non-balanced disk-based data structures, such as quadtrees, k-d trees, and radix trees (tries). As an example, the standard distribution of PostgreSQL includes SP-GiST operator classes for two-dimensional points, which support indexed queries using these operators:"]},{"code":"\u003c\u003c   \u003e\u003e   ~=   \u003c@   \u003c\u003c|   |\u003e\u003e","paragraphs":[]},{"paragraphs":["(See Section 9.11 for the meaning of these operators.) The SP-GiST operator classes included in the standard distribution are documented in Table 65.2 . For more information see Section 65.3 ."]},{"paragraphs":["Like GiST, SP-GiST supports “ nearest-neighbor ” searches. For SP-GiST operator classes that support distance ordering, the corresponding operator is listed in the “ Ordering Operators ” column in Table 65.2 ."]}],"title":"Queries, operators and limitations"}]}},"RequestedLocale":"en","Fallback":false,"Versions":["10","11","12","13","14","15","16","17","18","19","20","9.2","9.3","9.4","9.5","9.6"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
