Foros del Web » Programando para Internet » PHP »

Ayuda con Buscador híbrido para BD y páginas html

Estas en el tema de Ayuda con Buscador híbrido para BD y páginas html en el foro de PHP en Foros del Web. Hola amigos, Tengo que hacer un buscador híbrido que no solo busque en el contenido de la BD, sino que también recorra las páginas de ...
  #1 (permalink)  
Antiguo 05/05/2006, 09:09
 
Fecha de Ingreso: abril-2006
Mensajes: 131
Antigüedad: 11 años, 8 meses
Puntos: 1
Ayuda con Buscador híbrido para BD y páginas html

Hola amigos,

Tengo que hacer un buscador híbrido que no solo busque en el contenido de la BD, sino que también recorra las páginas de mi sitio web y busque por su contenido o título.

La búsqueda en la BD la tengo más o menos pensada: con el tipo FULLTEXT utilizándo indices de busqueda en las tablas de la BD. Si saben algo mejor, estoy abierto a sugerencias

Pero para realizar la búsqueda en las páginas html no tengo ni idea de cómo hacerlo. Me gustaría que me indicaran cómo puedo hacerlo porque no encuentro nada explicado por ahí. Y si saben de alguna página que tenga algún script de ejemplo me ayudaría tb bastante.

A ver si tengo suerte!!

Un saludo.
  #2 (permalink)  
Antiguo 05/05/2006, 09:57
 
Fecha de Ingreso: abril-2006
Mensajes: 131
Antigüedad: 11 años, 8 meses
Puntos: 1
Para la parte del buscador de paginas html, he estado mirando las funciones php de acceso a directorios pero no sé si tengo que abrir los ficheros html y recorrer su contenido para hacer la búsqueda.... o sólo buscar por el título de la página html. A ver si me pueden ayudar, porque no sé cómo hacerlo.

Gracias, un saludo!!!

Última edición por miguel867; 06/05/2006 a las 13:59
  #3 (permalink)  
Antiguo 05/05/2006, 15:19
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pero .. en cuanto a la busqueda en tus páginas HTML ... que debes "buscar"? .. algo en el contenido de las mismas? ... por el nombre de la página (nose.html) .. o como dices: por el título de la página HTML (que se encuentra entre las etiquetas HTML <title>...</title>? ..

En cualquier caso se trata de:
1) Listar o recorrer todos los archivos que tenga tu directorio. Con las funciones tipo www.php.net/dir lo podras hacer.
2) Dependiendo de lo que necesites, ... tendrías que filtrar todo el HTML (etiquetas) para quedarte con el "contenido" limpio de la página (los "datos puros"). Funciones como htmlstriptags() lo podrías hacer.
3) Buscar sobre ese "contenido" obtenido "limpio de HTML" a base de funciones de cadenas (www.php.net/string) o mejor todavía de Expresiones regulares (preg_match_all() .. etc ..)


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 06/05/2006, 13:57
 
Fecha de Ingreso: abril-2006
Mensajes: 131
Antigüedad: 11 años, 8 meses
Puntos: 1
Hola Cluster,

Gracias por tu ayuda. Pues en la parte del buscador de paginas html, la intención es buscar sobre el contenido de esas páginas y a su vez en el título de las mismas.... que como tu dices está entre los tags "title".

Otra cuestión que me gustaría que me indicaras: Para las páginas que se generan dinámicamente a partir de código php, las búsquedas en ellas símplemente se basaría en hacer una búsqueda en las correspondientes tablas de la BD, no? eso es lo que yo haría. Me refiero que sería equivalente a realizar la búsqueda en la BD. Si alguien tiene alguna idea mejor, que me la haga saber, por favor.

Cluster, miraré estas funciones que me indicas para hacer la búsqueda de texto plano y ya iré posteando si tengo dudas.

Gracias!!!
  #5 (permalink)  
Antiguo 06/05/2006, 21:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Para las páginas que se generan dinámicamente a partir de código php, las búsquedas en ellas símplemente se basaría en hacer una búsqueda en las correspondientes tablas de la BD, no? eso es lo que yo haría. Me refiero que sería equivalente a realizar la búsqueda en la BD.
Claro .. si esas páginas dinámicas se generan a partir de datos que ya gestionas en una BBDD, lo más "sano" es que implementes un buscador sobre SQL (sea en Full Text Search .. u otras técnicas más simples).

Lo que no entiendo muy bien es por qué tienes páginas "estáticas" si también gestionas cierto contenido sobre BBDD, creo que lo más sano sería invertir esfuerzos en "migrar" esas páginas estáticas (HTML puro) a tus BBDD y tener un sistema mucho más "homogenio" y sobre todo agilizar esas busquedas con SQL -sólo-

De hecho .. si tus páginas HTML (estáticas) son muchas, extensas y las busquedas van a ser intensivas sobre estas ... vas a tener que "indexar" el contenido que tengan tus páginas para no -sobre cargar- tu servidor (ni hacer esperas inteminables a tus usuarios) en las busquedas. Esa "indexación" se basa en crear un "indice" (como la palabra lo dice) de las palabras que más aparecen en una página y crear una referencia de esa palabra(s) y en que página está. Es decir, el proceso de indexación se hace una vez o cuando esas páginas estáticas cambian (que si son "estáticas" no deberían de cambiar habitualmente), .. ese "indice" como te comento al final suele caer en una "Base de datos" .. Al final podrás sacar la conclusión que gestionar ese contenido sobre tu BBDD (el de tus páginas estáticas actuales) o tener que crear un "indice" sobre una BBDD de estas características, sale más rentable y productivo hacerlo bien una vez y no a medias dos veces.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 07/05/2006, 06:46
 
Fecha de Ingreso: abril-2006
Mensajes: 131
Antigüedad: 11 años, 8 meses
Puntos: 1
La verdad es que el sitio web que me encontré cuando llegué al trabajo es una mezcla de páginas estáticas en html y el resto son páginas dinámicas con php. Entonces no quieren que sea todo dinámico (cosa que por mucho que les explique no quieren entender o aceptar), por lo que no me queda más remedio que hacer una búsqueda híbrida. Para agilizar las búsquedas de contenidos de páginas estáticas no me recomiendas que recorra los directoros y acceda a su contenido por la lentitud del proceso, no?

Entonces me podriás explicar un poco más detallado la técnica de buscar mediante indexación (la que me decías en el post de antes), para buscar en páginas estáticas. No entiendo eso de meter índices en la base de datos para las páginas estáticas.

Al final tendré que convencerles como sea de hacerlo todo dinámico!!!

A ver si me puedes echar un cable explicandome eso.

Gracias por tus consejos!!!! Un saludo.
  #7 (permalink)  
Antiguo 08/05/2006, 07:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Entonces me podriás explicar un poco más detallado la técnica de buscar mediante indexación (la que me decías en el post de antes), para buscar en páginas estáticas. No entiendo eso de meter índices en la base de datos para las páginas estáticas.

Estudia como trabaja alguna de estas aplicaciones o simplemente usalas:

La explicación de como funciona en su base un proceso de "indexación" ya te lo comenté .. No es más que buscar en el contenido de una página las veces que aparecen palabras, descartando normalmente palabras de menos de 3 caracteres, así creas un registro de palabras y donde aparecen estas (en que URL). Otros buscadores más simples te "obligan" a crear entradas en etiquetas "META" tipo "keyword" y sólo buscan en esas palabras (pero el listado de términos relevantes del contenido de esa página lo haces tu a mano ..). En fin .. hay várias técnicas .. tendrás que probarlas a ver que rendimiento obtienes:

http://www.hotscripts.com/PHP/Script...nes/index.html

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 12:49.