My problem is, that in fact I don't know which tag to index since I'm
running a web admin application where users can enter arbitrary
queries.

For a tag cloud, try this :

- table tags ( tag_id, tag_name )
- table articles ( article_id )
- table articles_to_tags( article_id, tag_id )

now this is the classical approach, which doesn't work so well when you want to get an article that has several tags (tag intersection).

So, materialize the list of tag_ids for each article in an INTEGER[] array in the articles table, kept up to date with triggers.

Create a gist index on that, and use indexed array vs array operators.

--
Sent via pgsql-performance mailing list (pgsql-performance@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance

Reply via email to