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

DudaEstructura de base de datos para buscador

Estas en el tema de DudaEstructura de base de datos para buscador en el foro de Mysql en Foros del Web. Estoy desarrollando un buscador para un proyecto y deseo que el diseño de la base de datos sea lo más óptimo leí el artículo que ...
  #1 (permalink)  
Antiguo 28/02/2008, 09:05
Avatar de alaintm  
Fecha de Ingreso: marzo-2007
Mensajes: 149
Antigüedad: 17 años
Puntos: 1
DudaEstructura de base de datos para buscador

Estoy desarrollando un buscador para un proyecto y deseo que el diseño de la base de datos sea lo más óptimo leí el artículo que a continuación muestro pero no se si es óptimo y no lo entiendo en su totalidad, agradecería su ayuda.

...

Cita:
Se trata de crear un script en PHP para crear un buscador en nuestro sitio web. Para ello primero tendremos que crear un estructura en la base de datos para almacenar la relación entre palabras y páginas. Se crearán tres tablas, una para almacenar las páginas, otra para almacenar las palabras y otra para almacenar la relación entre páginas y palabras.

En segundo lugar deberemos indexar las páginas, usando un script que pasándole una URL, se la baje, le elimine todas las etiquetas HTML, la separe en palabras y guarde todos los datos en las tablas.

Por último crear una página para realizar la búsqueda, un sencillo formulario y una consulta a la BD nos devolverá una lista de páginas que contiene dicha palabra.

La verdad es que más simple no puede ser, y lógicamente no parece muy óptimo. Se le podrían hacer varios ajustes al script, como por ejemplo crear una lista de palabras "tabú", las cuales no indexará (preposiciones, artículos). También en la tabla de relaciones entre páginas-palabras se le podría incluir la posición de la palabra, así si queremos buscar dos palabras seguidas, poder localizar mejor estos casos. Otra opción sería localizar las etiquetas HTML de cabeceras (h1, h2, ...) de la página, las etiquetas para resaltar texto (strong, em, b, i, u) y darle una mayor importancia o prioridad a esas palabras en la tabla de relaciones, así los resultados que nos devuelva la consulta, los podemos ordenar por prioridad, y no tener que encontrarnos entre los primeros resultados páginas que poco tienen que ver con lo que buscamos simplemente porque contienen la palabra. Y por último, se me ocurre que en la tabla de páginas se le podría añadir un campo que indicara el número de visitas que recibe, priorizando las búsquedas en páginas más visitadas.
...
  #2 (permalink)  
Antiguo 28/02/2008, 10:17
 
Fecha de Ingreso: mayo-2006
Mensajes: 120
Antigüedad: 17 años, 11 meses
Puntos: 3
Re: DudaEstructura de base de datos para buscador

Nadie puede saber si es óptimo sin conocer nada acerca de tu proyecto.
__________________
programación php
  #3 (permalink)  
Antiguo 28/02/2008, 10:32
Avatar de alaintm  
Fecha de Ingreso: marzo-2007
Mensajes: 149
Antigüedad: 17 años
Puntos: 1
Re: DudaEstructura de base de datos para buscador

Mi proyecto es un conjunto de sitios web sobre software libre, la idea es indexar cada página para la búsqueda de información, pero lo queremos es dar más relevancia al contenido que este entre H1-H6 o strong y por último P, empleando un robot que indexe el contenido y mi duda es como estructuro la tabla o tablas y si ese ejemplo me sirve, pero es que no se como se implementaría ya que queremos que quede lo más óptimo posible.

Salu2
  #4 (permalink)  
Antiguo 29/02/2008, 11:26
Avatar de kunndry  
Fecha de Ingreso: abril-2004
Ubicación: Alicante / España
Mensajes: 247
Antigüedad: 20 años
Puntos: 0
Re: DudaEstructura de base de datos para buscador

Yo creo que todo depende mucho del numero de páginas que tengas ideas de indexar.

Es decir, si vas a indexar 20 proyectos...incluso podiras poner supervisión humana.

Si vas a poner 2000, el modelo (estructura) de la base de datos ya tendria que ser distinto para tener en cuenta como optimizar los resultados.

Si van a ser 20.000 proyectos... probablemente tengas que afinar mucho los metodos de ordenación de resultados y posiblemente pensar formas alternativas a las consultas tradicionales.

Si ya van a ser más...igual tendrias que intentar que google te diera su algoritmo.

Una sugerencia, si lo que buscan no es el aprendizaje de crear el buscador, usa google, es decir, integra google en tu site, los resultados van a ser mejores de lo que podais conseguir vosotros. Si lo importante del proyecto es crear el buscador...os recomiendo que empeceis a leer mucha documentación acerca del modelo relacional y sobre optimización.

Para extraer contenido de las webs, busca información sobre analizadores léxicos (Sirven para extraer texto con patrones, seria una capa por encima de las expresiones regulares).

Yo en linux he trabajado con flex, pero la verdad que sin mucha carga de texto, es decir, con archivos pequeños iba muy bien y rapido, con grandes textos...no tengo ni idea. Suerte.
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 22:11.