如何在Tika中延长OCR超时时间?
解决Tika 2.5 OCR超时上限问题
你遇到的问题是因为X-Tika-Timeout-Millis请求头的超时值无法突破Tika服务器端预设的全局上限,要解决这个问题,必须修改服务器端的配置,具体方法如下:
修改全局OCR超时配置
方法1:使用tika-config.xml配置文件
- 找到Tika服务器的
tika-config.xml文件(如果不存在,手动创建一个) - 添加或更新以下配置节点(单位为毫秒,示例设置为10分钟即600000毫秒):
<properties> <!-- 全局OCR超时设置,覆盖默认的300000毫秒(300秒) --> <property name="tika.ocr.timeout" value="600000"/> <!-- 可选:单独设置Tesseract引擎的超时时间 --> <property name="tesseract.timeout" value="600000"/> </properties>
- 重启Tika服务器,新配置即可生效。之后你通过
X-Tika-Timeout-Millis设置的超时值只要不超过这个新上限就会生效。
方法2:通过JVM启动参数设置
如果你不想修改配置文件,可以在启动Tika服务器时直接通过JVM参数指定超时:
java -Dtika.ocr.timeout=600000 -jar tika-server-standard-2.5.0.jar
同样,-Dtesseract.timeout=600000可以单独控制Tesseract的超时,按需添加即可。
注意事项
- 超时值的设置需要根据你的并行处理负载调整,过长的超时可能会导致服务器资源占用过高,影响整体处理效率。
- 无论用哪种方法,修改后都需要重启Tika服务器才能生效。
内容的提问来源于stack exchange,提问作者Kate
相关产品推荐
相关产品推荐

