Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/08/2008, 08:07
Avatar de mij
mij
 
Fecha de Ingreso: enero-2007
Mensajes: 70
Antigüedad: 17 años, 3 meses
Puntos: 1
Indice inverso

Estoy haciendo una aplicación en PHP/mysql para organizar y buscar textos. La parte de búsqueda la estoy implementando usando un indice inverso.
Pues bién, todos los -pocos- ejemplos que he encontrado en la red usan una tabla del estilo:

CREATE TABLE `indice` (
`id_indice` MEDIUMINT NOT NULL ,
`id_palabra` MEDIUMINT NOT NULL ,
`id_texto` MEDIUMINT NOT NULL ,
`posicion` SMALLINT NOT NULL
)

Cada palabra de cada texto ocupa entonces (3*mediumint + 1*smallint)=11bytes en el índice.
Ya que la longitud media de las palabras en español es de 4.96 letras, el texto plano requiere unos 5bytes por palabra. Por lo tanto, el índice inverso usaría más del doble de espacio en disco que el texto plano. ¿Es esto asi o optimiza MySql estos resultados (con listas enlazadas o similar)?

Y ya que estamos preguntando, me gustaría saber si alguno de vosotros conoce algun tutorial o sitio con abundante información sobre implementación de indices inversos, especialmente en php, ya que he encontrado relativamente poca información al respeto.

Muchas gracias!