http://www.postgresql.org/docs/9.2/static/hstore.html states:
hstore has GiST and GIN index support for the @>, ?, ?& and ?| operators
Yet the indexes don’t work for the EXIST function, which appears to be equivalent to the ? operator.
What is the difference between operators and functions that makes it harder to index one or the other?
Might future versions of the Hstore extension make these truly equivalent?
Lookup the documentation for “CREATE OPERATOR CLASS” which describes how you can create indexing methods for arbitrary operators. You also need to use “CREATE OPERATOR” to create an operator based on the EXIST function first.
(Caveat: I have no experience with hstore)
http://www.postgresql.org/docs/9.0/static/sql-createoperator.html
http://www.postgresql.org/docs/9.0/static/sql-createopclass.html