mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
Support LIKE and ILIKE index searches via contrib/pg_trgm indexes.
Unlike Btree-based LIKE optimization, this works for non-left-anchored search patterns. The effectiveness of the search depends on how many trigrams can be extracted from the pattern. (The worst case, with no trigrams, degrades to a full-table scan, so this isn't a panacea. But it can be very useful.) Alexander Korotkov, reviewed by Jan Urbanski
This commit is contained in:
@ -137,8 +137,10 @@
|
||||
The <filename>pg_trgm</filename> module provides GiST and GIN index
|
||||
operator classes that allow you to create an index over a text column for
|
||||
the purpose of very fast similarity searches. These index types support
|
||||
the above-described similarity operators (and no other operators, so you may
|
||||
want a regular B-tree index too).
|
||||
the above-described similarity operators, and additionally support
|
||||
trigram-based index searches for <literal>LIKE</> and <literal>ILIKE</>
|
||||
queries. (These indexes do not support equality nor simple comparison
|
||||
operators, so you may need a regular B-tree index too.)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -181,6 +183,18 @@ SELECT t, t <-> '<replaceable>word</>' AS dist
|
||||
a small number of the closest matches is wanted.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Beginning in <productname>PostgreSQL</> 9.1, these index types also support
|
||||
index searches for <literal>LIKE</> and <literal>ILIKE</>, for example
|
||||
<programlisting>
|
||||
SELECT * FROM test_trgm WHERE t LIKE '%foo%bar';
|
||||
</programlisting>
|
||||
The index search works by extracting trigrams from the search string
|
||||
and then looking these up in the index. The more trigrams in the search
|
||||
string, the more effective the index search is. Unlike B-tree based
|
||||
searches, the search string need not be left-anchored.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The choice between GiST and GIN indexing depends on the relative
|
||||
performance characteristics of GiST and GIN, which are discussed elsewhere.
|
||||
|
Reference in New Issue
Block a user