Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Ayuda: Que forma recomendais para almacenar todas las palabras de una web en una BD

Estas en el tema de Ayuda: Que forma recomendais para almacenar todas las palabras de una web en una BD en el foro de Bases de Datos General en Foros del Web. Hola. EStoy haciendo (itnentando por lo menos) hacer un buscador en php y mysql. Bueno, es para uso didactico, asique por eso lo hago en ...
  #1 (permalink)  
Antiguo 18/11/2005, 06:06
 
Fecha de Ingreso: octubre-2005
Mensajes: 18
Antigüedad: 18 años, 6 meses
Puntos: 1
Ayuda: Que forma recomendais para almacenar todas las palabras de una web en una BD

Hola.

EStoy haciendo (itnentando por lo menos) hacer un buscador en php y mysql.
Bueno, es para uso didactico, asique por eso lo hago en php y mysql.


Una vez que he cogido el codigo html de una direccion, y lo he tratado (quitado "stop words", quitado las etiquetas, etc..), vamos, una vez que tenga ya las palabras para guardarlas en la base de datos...

como creeis que es la mejor forma, o como lo hacen los robot existentes por la red, para almacenar todas las palabras en la base de datos?

Yo he pensado varias posibles soluciones pero no me convencen mucho:

Cita:
Solucion 1:
Tener una tabla Direcciones como:
Id_d Direccion
23 http://www.unadir.com/doc.html
18 http://www.otradir.com/doc2.html

Otra tabla con palabras que se van encontrando tal que:
Id_p Palabra
45 "perro"
67 "vaca"

Y otra tabla con la relacion direcciones-palabras
Id_d Id_p Frecuencia
23 45 8
23 67 5
18 45 2
Cita:
Otra solucion seria:
Tener una tabla Direcciones como:
Id_d Direccion
23 http://www.unadir.com/doc.html
18 http://www.otradir.com/doc2.html

Otra tabla con los identificadores de dir y las palabras que tiene:
Id_p Palabra
23 "perro:vaca:granga:comer:..."
18 "vaca:cantaba:foto:..."

La primera soluicon tiene de bueno que si buscas "perro" directamente miras si en la tabla con las palabras existe "perro", si no es asi, no existen resultados y si existe obtienes el identificador y coges ya las direcciones en que el campo Id_p coincida con el id de perro.
Pero claro Si tieenes que crear una tupla por cada palabra aparecida en una web, si una web tiene 10000 palabras, tienes que crear 10000 direcciones, y eso, para las x numero de webs que quieras almacenar, es un poco de locura.
Tambien tiene de bueno, que al meter en la tabla con la relacion solo dos numeros integer, pues no ocuparia tanto espacio como puede ocupar todo el texto como en la segunda relacion

La otra solucion tiene el inconveniente, que meter en un campo 10000 palabras de una web...pues puede salir un campo demasiaddo pesado como para estar cogiendo en cada consulta cada campo de cada registro que haya para hacer el LIKE...




¿Como creeis que se deberia almacenar? ¿o sabeis si alguna de estas posibillidades se pueden llevar a cabo? ¿como lo hacen los buscadores ya creados?

Estoy algo perdido, asique si me podeis decir lo que sea os lo agradeceria.



Ah, sabeis cuantas tuplas se pueden insertar en una tabla en mysql como maximo si es que hay maximo?
  #2 (permalink)  
Antiguo 18/11/2005, 07:55
 
Fecha de Ingreso: noviembre-2005
Mensajes: 2
Antigüedad: 18 años, 5 meses
Puntos: 0
Yo lo haría asi:
Tengo una tabla de palabras
(id,palabra)
También tengo una tabla de páginas (id,pagina,...)
y por último, una tabla de palabras_por_pagina(idpalabra,idpagina)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:32.