</programlisting>
<para>
- <literal>gist_hstore_ops</literal> GiST opclass approximates set of
- key/value pairs as a bitmap signature. Optional integer parameter
- <literal>siglen</literal> of <literal>gist_hstore_ops</literal> determines
- signature length in bytes. Default signature length is 16 bytes.
+ <literal>gist_hstore_ops</literal> GiST opclass approximates a set of
+ key/value pairs as a bitmap signature. Its optional integer parameter
+ <literal>siglen</literal> determines the
+ signature length in bytes. The default length is 16 bytes.
Valid values of signature length are between 1 and 2024 bytes. Longer
- signatures leads to more precise search (scan less fraction of index, scan
- less heap pages), but larger index.
+ signatures lead to a more precise search (scanning a smaller fraction of the index and
+ fewer heap pages), at the cost of a larger index.
</para>
<para>
</para>
<para>
- Two parametrized GiST index operator classes are provided:
+ Two parameterized GiST index operator classes are provided:
<literal>gist__int_ops</literal> (used by default) is suitable for
small- to medium-size data sets, while
<literal>gist__intbig_ops</literal> uses a larger signature and is more
</para>
<para>
- <literal>gist__int_ops</literal> approximates integer set as an array of
- integer ranges. Optional integer parameter <literal>numranges</literal> of
- <literal>gist__int_ops</literal> determines maximum number of ranges in
- one index key. Default value of <literal>numranges</literal> is 100.
+ <literal>gist__int_ops</literal> approximates an integer set as an array of
+ integer ranges. Its optional integer parameter <literal>numranges</literal>
+ determines the maximum number of ranges in
+ one index key. The default value of <literal>numranges</literal> is 100.
Valid values are between 1 and 253. Using larger arrays as GiST index
- keys leads to more precise search (scan less fraction of index, scan less
- heap pages), but larger index.
+ keys leads to a more precise search (scaning a smaller fraction of the index and
+ fewer heap pages), at the cost of a larger index.
</para>
<para>
- <literal>gist__intbig_ops</literal> approximates integer set as a bitmap
- signature. Optional integer parameter <literal>siglen</literal> of
- <literal>gist__intbig_ops</literal> determines signature length in bytes.
- Default signature length is 16 bytes. Valid values of signature length
- are between 1 and 2024 bytes. Longer signatures leads to more precise
- search (scan less fraction of index, scan less heap pages), but larger index.
+ <literal>gist__intbig_ops</literal> approximates an integer set as a bitmap
+ signature. Its optional integer parameter <literal>siglen</literal>
+ determines the signature length in bytes.
+ The default signature length is 16 bytes. Valid values of signature length
+ are between 1 and 2024 bytes. Longer signatures lead to a more precise
+ search (scanning a smaller fraction of the index and fewer heap pages), at
+ the cost of a larger index.
</para>
<para>
<literal>@</literal>, <literal>~</literal>, <literal>?</literal>
</para>
<para>
- <literal>gist_ltree_ops</literal> GiST opclass approximates set of
- path labels as a bitmap signature. Optional integer parameter
- <literal>siglen</literal> of <literal>gist_ltree_ops</literal> determines
- signature length in bytes. Default signature length is 8 bytes.
+ <literal>gist_ltree_ops</literal> GiST opclass approximates a set of
+ path labels as a bitmap signature. Its optional integer parameter
+ <literal>siglen</literal> determines the
+ signature length in bytes. The default signature length is 8 bytes.
Valid values of signature length are between 1 and 2024 bytes. Longer
- signatures leads to more precise search (scan less fraction of index, scan
- less heap pages), but larger index.
+ signatures lead to a more precise search (scanning a smaller fraction of the index and
+ fewer heap pages), at the cost of a larger index.
</para>
<para>
- Example of creating such an index with a default signature length of 8 bytes:
+ Example of creating such an index with the default signature length of 8 bytes:
</para>
<programlisting>
CREATE INDEX path_gist_idx ON test USING GIST (path);
<literal>@</literal>, <literal>~</literal>, <literal>?</literal>
</para>
<para>
- <literal>gist__ltree_ops</literal> GiST opclass works similar to
+ <literal>gist__ltree_ops</literal> GiST opclass works similarly to
<literal>gist_ltree_ops</literal> and also takes signature length as
- a parameter. Default value of <literal>siglen</literal> in
+ a parameter. The default value of <literal>siglen</literal> in
<literal>gist__ltree_ops</literal> is 28 bytes.
</para>
<para>
- Example of creating such an index with a default signature length of 28 bytes:
+ Example of creating such an index with the default signature length of 28 bytes:
</para>
<programlisting>
CREATE INDEX path_gist_idx ON test USING GIST (array_path);
</para>
<para>
- <literal>gist_trgm_ops</literal> GiST opclass approximates set of
- trigrams as a bitmap signature. Optional integer parameter
- <literal>siglen</literal> of <literal>gist_trgm_ops</literal> determines
- signature length in bytes. Default signature length is 12 bytes.
+ <literal>gist_trgm_ops</literal> GiST opclass approximates a set of
+ trigrams as a bitmap signature. Its optional integer parameter
+ <literal>siglen</literal> determines the
+ signature length in bytes. The default length is 12 bytes.
Valid values of signature length are between 1 and 2024 bytes. Longer
- signatures leads to more precise search (scan less fraction of index, scan
- less heap pages), but larger index.
+ signatures lead to a more precise search (scanning a smaller fraction of the index and
+ fewer heap pages), at the cost of a larger index.
</para>
<para>
to check the actual table row to eliminate such false matches.
(<productname>PostgreSQL</productname> does this automatically when needed.)
GiST indexes are lossy because each document is represented in the
- index by a fixed-length signature. Signature length in bytes is determined
+ index by a fixed-length signature. The signature length in bytes is determined
by the value of the optional integer parameter <literal>siglen</literal>.
- Default signature length (when <literal>siglen</literal> is not specied) is
- 124 bytes, maximal length is 2024 bytes. The signature is generated by hashing
+ The default signature length (when <literal>siglen</literal> is not specified) is
+ 124 bytes, the maximum signature length is 2024 bytes. The signature is generated by hashing
each word into a single bit in an n-bit string, with all these bits OR-ed
together to produce an n-bit document signature. When two words hash to
the same bit position there will be a false match. If all words in
the query have matches (real or false) then the table row must be
- retrieved to see if the match is correct. Longer signatures leads to more
- precise search (scan less fraction of index, scan less heap pages), but
- larger index.
+ retrieved to see if the match is correct. Longer signatures lead to a more
+ precise search (scanning a smaller fraction of the index and fewer heap
+ pages), at the cost of a larger index.
</para>
<para>