PHP - Buscador que busque en el contenido de archivos

 
Vista:

Buscador que busque en el contenido de archivos

Publicado por Juan Carlos (16 intervenciones) el 11/03/2003 10:43:56
Hola.
No se si se puede hacer un buscador que busque, una palabra clave, en el contenido de documentos. En principio los archivos serían .pdf y algunos .doc.
El resultado de la busqueda tendría que ser un enlace al documento en cuestión.
Si se puede hacer, por favor indícame un poco cómo, para luego yo documentarme y estudiar el tema.

El contenido de estos documentos no puede estar contenido en bbdd, ya que el nº de documentos es grandísimo y su longitud también.

Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

si, se puede...

Publicado por xxx (35 intervenciones) el 11/03/2003 13:19:45
mmm. nunca lo habia pensado.
si.. seguro que se puede.
habria que hacer del mismo modo que lo haría un navegador de archivos normal.
Abriendo uno por unos esos archivos, almacenando su contenido en un buffer, y luego haciendo una búsqueda en todo el documento.
podrias hacer un chace, en unos archivos temporarios guardando informacion como la siguiente: (supongo que los exploradores de archivos han de hacer lo mismo, poruqe la busque queda de algun modo almacenada.. debarias investigar en este tema).

si buscas;
"correr desnudo"

bueno, creas una funcion recursiva que lea todos los archivos y los subdirectorios.
y a medida que vas encontrando archivos, los vas leyendo.
yo diria de almacenar cada palabra clave en el cache, para posteriores busquedas, ya que son palabras potenciales que el usuario quiere. Eso te la tendrias que arreglar de algun modo, pero basicamente funcionaria que al inicial una busque se fije en el "cache" y los resultados anteriores de busquedas que hay. (ahi alamacenarias la ubicacion de todos los archivos , las fechas de modificacikones y las palabras claves.
entonces a la hora de buscar:

"corriendo descalzo",
no tiene sentido que abras el arcchio y lo leas nuevamente, y ya tiene s la informacion en el cache. simplemente habria que averiguar la fecha de ultima modificacion.
y qui enctra lo de las palabras claves.
si anteriormente buscaste "corriendo desnudo", y no encontro en ese archivo la palbra clave que ahora se repite: "corriendo", encontes directamente ni siquiera abres el archivo para leerlo (que de hecho es lo que le va a llevar mas tiempo al programa). o si buscas "corriendo" solamente, lo incluyes directamente en la lista.
pero si buscas corriendo y algo mas. bueno.. ahi lo tienes qeu abrir para leer que otras palabras tienes (pero puedes tambien hacer algo que te alamcene otras palabras, y crear tu tus propias reglas de cuantas lineas agregar en el cache y que eso lo vaya regulando el script a medida que vaya haciendo la busqueda.)

como veras.. no es nada simple.
ni nunca me habia puesto a pensar en ello.
pero puedo ser una tarea bastante copmlicada. y laboriosa.
te recomendaria que lo hagas en linux o *nix (bueno, no creo que cambies tu sistema operativo por un solo script) , asi puedes usar la funcion FLUSH() para que te muestre los ressultados a medida que los va encontrando.
pero tambien le puedes poner.. (limitar a encontrar los primeros 5 arcivos).

en fin.
si necesitas ayuda, yo puedo dartela.

te comento que esto es la manera que se me ocurrió de como resolveria el problema. pero no he alizado el tema (todos lo que ves escrito aqui, es el analisis que pude hacer a medida que iba escribiendo y pensando).
puede que haya otros modos.
seria cuestiones de investigar COMO funcionan los exploradores de archivos e imitar su funcionamiento.

attentamente.
xxx
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:si, se puede...

Publicado por Juan Carlos (16 intervenciones) el 11/03/2003 13:41:37
Gracias.
La verdad es que si que parece complicado, pero intentaré estudiarlo y si lo desarrollo me alegro de que pueda contar con tu ayuda para futuras consultas.
Muchas gracias por tu análisis.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar