From: | Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl> |
---|---|
To: | Ubaldo Taladriz <utaladriz(at)exe(dot)cl> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Mejorar Rendimiento |
Date: | 2004-07-13 05:16:22 |
Message-ID: | 20040713051622.GC7376@dcc.uchile.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On Tue, Jul 13, 2004 at 12:49:08AM -0400, Alvaro Herrera wrote:
> On Tue, Jul 13, 2004 at 12:35:26AM -0400, Ubaldo Taladriz wrote:
> > Corrijanme si estoy equivocado, pero no existe indice alguno que pueda
> > ayudarlo con consultas del estilo like '%asdasdasd%'
> > Este tipo de consultas van a significar un full scan (Busqueda
> > secuencial sobre todos los registros de la tabla)
>
> Esa clase de indices si existen. Lo mas trivial son los indices
> invertidos, que para cada palabra de un "diccionario" tienen punteros
> hacia todos los documentos que contienen dicha palabra; hay versiones
> mas elaboradas, como indexar trigramas.
Correccion ... un indice invertido no sirve para esto, porque no hay
medio de saber donde estan los bordes de las palabras. Pero para una
consulta del estilo '%askdjhaskd%' se puede usar un arbol de sufijos, un
arreglo de sufijos o un trie de sufijos (y probablemente otros)
No se si en Postgres se implementa alguna de estas cosas. tsearch2 creo
que es un trie de sufijos o alguna estructura parecida (solo que ellos
hacen preprocesamiento de los documentos y de la consulta, como
stemming, eliminacion de stopwords, etc)
--
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"When the proper man does nothing (wu-wei),
his thought is felt ten thousand miles." (Lao Tse)
From | Date | Subject | |
---|---|---|---|
Next Message | Felipe Fernandez | 2004-07-13 06:10:25 | Re: Mejorar Rendimiento |
Previous Message | Felipe Fernandez | 2004-07-13 05:11:31 | Re: Mejorar Rendimiento |