Buscar en PDFs

09/04/2007 - 18:07 por Juan Diego Bueno | Informe spam
Buenas grupo:

Voy a pediros consejo sobre un tema que tengo que implementar a medio
plazo. Ya hace tiempo pregunté si alguien conocía alguna herramienta
que sirviera para poder interpretar el texto de un pdf. No creo que
tenga problema en encontrar algo así, y de alguna u otra forma podré
hacerla. Mi idea es coger e interpretar ese texto en un proceso que
pueda lanzar el usuario o que se lance automáticamente de no hacerlo
el usuario. Supongamos que de ahí yo obtengo el texto plano sobre el
cual quiero buscar palabras clave (y hablamos de varios registros, que
pueden ser cientos tranquilamente). A partir de aquí, cual de estas
sería la mejor opción a nivel de rendimiento?

1. Guardar ese texto en un archivo .txt cuya ruta se almacene en un
campo y hacer la búsqueda sobre esos archivos de texto
2. Guardar ese texto en un campo ntext y hacer la búsqueda sobre ese
campo

Yo en principio pensaba implementar la segunda opción, pero si alguien
ha probado ambas y me puede asesorar, me vendría muy bien

Gracias de antemano.

Saludos

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
09/04/2007 - 18:54 | Informe spam
"Juan Diego Bueno" wrote in message
news:
Voy a pediros consejo sobre un tema que tengo que implementar a medio
plazo. Ya hace tiempo pregunté si alguien conocía alguna herramienta
que sirviera para poder interpretar el texto de un pdf. No creo que
tenga problema en encontrar algo así, y de alguna u otra forma podré
hacerla. Mi idea es coger e interpretar ese texto en un proceso que
pueda lanzar el usuario o que se lance automáticamente de no hacerlo
el usuario. Supongamos que de ahí yo obtengo el texto plano sobre el
cual quiero buscar palabras clave (y hablamos de varios registros, que
pueden ser cientos tranquilamente). A partir de aquí, cual de estas
sería la mejor opción a nivel de rendimiento?

1. Guardar ese texto en un archivo .txt cuya ruta se almacene en un
campo y hacer la búsqueda sobre esos archivos de texto
2. Guardar ese texto en un campo ntext y hacer la búsqueda sobre ese
campo

Yo en principio pensaba implementar la segunda opción, pero si alguien
ha probado ambas y me puede asesorar, me vendría muy bien




Solución idónea: Descárgate de la web de Adobe el IFILTER para pdf. Se
trata de una DLL que normalmente se utiliza con el Index Server de Microsoft
para que el Index Server pueda extraer el texto de los PDFs e indexarlos.
Pero la interfaz de esta DLL es conocida, ya que en la documentación para
desarrolladores de Index Server se explica cómo crear tus propios IFILTERs y
por tanto la forma de llamar a estos componentes es conocida. Así que podrás
llamar al IFILTER de Adobe para extraer el código de los PDFs. Pero si lo
que quieres es buscar texto en ellos, no vale la pena: para eso tienes el
propio Index Server que ya lo hace. No tienes más que configurarlo para que
indexe el directorio de los PDFs, y puedes ejecutar las búsquedas desde tu
código mediante el OleDb de Index Server.
Respuesta Responder a este mensaje
#2 Juan Diego Bueno
09/04/2007 - 20:02 | Informe spam
Muchas gracias Alberto. Lo probaré

Una duda: de la segunda opción (puesto que sólo me interesa el texto), es
rápida?. Lo digo porque yo automáticamente pienso que en la búsqueda hace
algún tipo de proceso similar a un OCR y si pienso en por ejemplo 10000
pdfs, automáticamente lo asocio a tiempo de procesado + tiempo de búsqueda,
mientras que si ya tengo el procesado hecho, la búsqueda sería más rápida.
De todas formas, por tu post deduzco que en el indexado ya se cubre parte de
ese tiempo de proceso. Confirmamelo, por favor

Saludos

"Alberto Poblacion"
escribió en el mensaje news:
"Juan Diego Bueno" wrote in message
news:
Voy a pediros consejo sobre un tema que tengo que implementar a medio
plazo. Ya hace tiempo pregunté si alguien conocía alguna herramienta
que sirviera para poder interpretar el texto de un pdf. No creo que
tenga problema en encontrar algo así, y de alguna u otra forma podré
hacerla. Mi idea es coger e interpretar ese texto en un proceso que
pueda lanzar el usuario o que se lance automáticamente de no hacerlo
el usuario. Supongamos que de ahí yo obtengo el texto plano sobre el
cual quiero buscar palabras clave (y hablamos de varios registros, que
pueden ser cientos tranquilamente). A partir de aquí, cual de estas
sería la mejor opción a nivel de rendimiento?

1. Guardar ese texto en un archivo .txt cuya ruta se almacene en un
campo y hacer la búsqueda sobre esos archivos de texto
2. Guardar ese texto en un campo ntext y hacer la búsqueda sobre ese
campo

Yo en principio pensaba implementar la segunda opción, pero si alguien
ha probado ambas y me puede asesorar, me vendría muy bien




Solución idónea: Descárgate de la web de Adobe el IFILTER para pdf. Se
trata de una DLL que normalmente se utiliza con el Index Server de
Microsoft para que el Index Server pueda extraer el texto de los PDFs e
indexarlos. Pero la interfaz de esta DLL es conocida, ya que en la
documentación para desarrolladores de Index Server se explica cómo crear
tus propios IFILTERs y por tanto la forma de llamar a estos componentes es
conocida. Así que podrás llamar al IFILTER de Adobe para extraer el código
de los PDFs. Pero si lo que quieres es buscar texto en ellos, no vale la
pena: para eso tienes el propio Index Server que ya lo hace. No tienes más
que configurarlo para que indexe el directorio de los PDFs, y puedes
ejecutar las búsquedas desde tu código mediante el OleDb de Index Server.

Respuesta Responder a este mensaje
#3 Alberto Poblacion
09/04/2007 - 20:14 | Informe spam
"Juan Diego Bueno" wrote in message
news:eiM%
De todas formas, por tu post deduzco que en el indexado ya se cubre parte
de ese tiempo de proceso. Confirmamelo, por favor



Sí, cuando se indexa el documento pdf se extrae el texto del mismo, y se
guarda en el archivo de índices del index server. Después las búsquedas se
realizan sobre estos índices ya extraídos.
De todas formas, ten en cuenta que el IFILTER no realiza OCR, es decir,
solo se indexan los textos que estén en forma de texto dentro del PDF, pero
no los textos dibujados de forma gráfica dentro de un bitmap encapsulado en
el PDF.
Respuesta Responder a este mensaje
#4 Juan Diego Bueno
09/04/2007 - 20:25 | Informe spam
Supongo que con eso me bastaría. Espero que sean curriculums y documentos
hechos en un procesador de textos. Por cierto, ¿puede indexar esto archivos
de word?
"Alberto Poblacion"
escribió en el mensaje news:%
"Juan Diego Bueno" wrote in message
news:eiM%
De todas formas, por tu post deduzco que en el indexado ya se cubre parte
de ese tiempo de proceso. Confirmamelo, por favor



Sí, cuando se indexa el documento pdf se extrae el texto del mismo, y
se guarda en el archivo de índices del index server. Después las búsquedas
se realizan sobre estos índices ya extraídos.
De todas formas, ten en cuenta que el IFILTER no realiza OCR, es decir,
solo se indexan los textos que estén en forma de texto dentro del PDF,
pero no los textos dibujados de forma gráfica dentro de un bitmap
encapsulado en el PDF.


Respuesta Responder a este mensaje
#5 Alberto Poblacion
09/04/2007 - 21:43 | Informe spam
"Juan Diego Bueno" wrote in message
news:
Supongo que con eso me bastaría. Espero que sean curriculums y documentos
hechos en un procesador de textos. Por cierto, ¿puede indexar esto
archivos de word?



Sí, los de Word los indexa directamente, ya viene instalado de fábrica
el ifilter necesario. También indexa sin necesidad de configurar nada, entre
otros, los txt y los html.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida