Re: Indexing on arrays
От | mlw |
---|---|
Тема | Re: Indexing on arrays |
Дата | |
Msg-id | 3A19F706.905E3C6F@mohawksoft.com обсуждение исходный текст |
Ответ на | Indexing on arrays ("Ivan E. Panchenko" <ivan@xray.sai.msu.ru>) |
Список | pgsql-hackers |
I am also working on a full text search system, and I have a similar problem, although I can get around the full table scan if I can simply return a full set of tuples. select * from table where table.key in ( function('bla bla bla') ); Or create table result as function('bla bla bla'); select * from table where table.key = result.key; I have been trying to figure out how to return a variable number and format of tuples, but am getting lost in the code. Any help anyone has would be greatly appreciated. "Ivan E. Panchenko" wrote: > > Dear Hackers, > > While working on a postgres-based fulltext searching system > we encountered the following problem: > > There is a table > create table t ( > x int [] > ) > and a given integer constant y. > The task is to find those records of this table, which contain the > value y in the arrays x. > > This could be implemented by writing a function > array_contains(array,value) > and selecting : > select * from table where array_contains(table.x, y); > > Such SQL statement would result in a long sequential scan, which is not > cool and not fast. It could be much more useful if we could use an index > for such a query. > > If there were a kind of B-tree index which allows to have several > key values for a record, the problem could be solved easily! > > We would like to know if such a feature is already implemented > in postgres indexes, otherwise are there any serious difficulties in > implementing it. > > May be, GiSt could be useful for this task. Does anybody know any alive > implementation of GiST ? > > Regards, Ivan Panchenko -- http://www.mohawksoft.com
В списке pgsql-hackers по дате отправления: