/ / ¿Cómo leer archivos grandes usando TIka? - apache-tika

¿Cómo leer archivos grandes usando TIka? - apache-tika

Estoy analizando documentos PDF y Word de gran tamaño utilizando Tika, pero recibo el siguiente mensaje de error.

Your document contained more than 100000 characters, and so your requested limit has been reached. To receive the full text of the document, increase your limit. (Text up to the limit is however available).

¿Cómo puedo aumentar el límite?

Respuestas

16 para la respuesta № 1

Suponiendo que estás siguiendo básicamente el Ejemplo de Tika para extraer a texto plano., entonces todo lo que necesitas hacer es crea tu BodyContentHandler con un límite de escritura de -1 para desactivar el límite de escritura, como se explica en la Javadocs

Tu código se vería comoinspirado en el ejemplo)

BodyContentHandler handler = new BodyContentHandler(-1);

InputStream stream = ContentHandlerExample.class.getResourceAsStream("test.doc");
AutoDetectParser parser = new AutoDetectParser();
Metadata metadata = new Metadata();
try {
parser.parse(stream, handler, metadata);
return handler.toString();
} finally {
stream.close();
}

1 para la respuesta № 2

No estoy de acuerdo con @Gagravarr usando el límite de escritura de -1, ya que el valor predeterminado que se seleccionará en el caso -1 es de hecho 100000 para ser exactos.

Si no estoy equivocado, la documentación de Tika BodyContentHandler> WriteOutContentHandler establece que:

El búfer interno de la cadena está limitado a 100k caracteres.

Sin embargo, la mejor manera de lograr esto es pasar un objeto de StringWriter como un argumento en lugar de -1.

StringWriter any = new StringWriter();

y entonces

BodyContentHandler handler = new BodyContentHandler(any);