I would suggest doing testing out btree_gin with a non-insignificant amount
of data before going ahead with it.

I did a test case last month, and the size of the generated index was
_much_ bigger than the base table.
The case involved a compound key if 1 int column and 1 timestamp range
column.

On Wed, 5 Dec 2018 at 16:02, Rob Nikander <rob.nikan...@gmail.com> wrote:

>
>
> > On Dec 4, 2018, at 4:59 PM, Laurenz Albe <laurenz.a...@cybertec.at>
> wrote:
> >
> > You have two options:
> >
> > A combined index:
> >
> >  CREATE EXTENSION btree_gin;
> >  CREATE INDEX ON fulltext USING gin (to_tsvector('english', doc), color);
> >
> > That is the perfect match for a query with
> >
> >  WHERE color = 'red' AND to_tsvector('german', doc) @@
> to_tsquery('english', 'word');
> >
> > But you can also create two indexes:
> >
> >  CREATE INDEX ON fulltext USING gin (to_tsvector('english', doc));
> >  CREATE INDEX ON fulltext (color);
> >
> > Then you don't need the extension, and PostgreSQL can still use them for
> the search,
> > either only one of them if the condition is selective enough, or a
> "BitmapAnd" of both.
>
> Thanks! I will try both these methods and compare the performance.
>
> Rob
>

Reply via email to