我正在使用tesseract运行tika-server-1.23.jar,并通过php使用curl从文件中提取文本。有时使用OCR运行会花费太长时间,所以我偶尔会排除运行tesseract。我可以通过插入来完成
<parser-exclude class="org.apache.tika.parser.ocr.TesseractOCRParser"/>
在tika-config.xml文件中,但这意味着它永远不会运行tesseract。
我可以通过curl强制tika服务器在每次请求时选择性地跳过使用tesseract吗?如果可以,如何跳过?
我有一个解决方法,我运行两个tika服务器实例,每个实例都有一个不同的配置文件在不同的端口上侦听,但这是次优的。
提前谢谢。
您可以使用PDF文件的标题设置OCR策略,其中包括一个不进行OCR的选项:
curl -T test.pdf http://localhost:9998/tika --header "X-Tika-PDFOcrStrategy: no_ocr"
对于其他文件类型并没有真正的等价物,但有一个类似的头前缀调用X-Tika-OCR,当用于任何文件类型时,它允许您在TesseractOCRConfig实例上设置配置。
你有一些可能对你的场景感兴趣的选项:
- maxFileSizeToOcr-您可以将其设置为0
- timeout-您可以将其设置为您愿意给予的超时
- tesseractPath-您可以将其设置为任何值,就好像它找不到它,也无法执行一样
例如,如果你想跳过一个文件,你可以将最大文件大小设置为0,这意味着它将不会被处理:
curl -T testOCR.jpg http://localhost:9998/tika --header "X-Tika-OCRmaxFileSizeToOcr: 0"
或者将路径设置为/伪:
curl -T testOCR.jpg http://localhost:9998/tika --header "X-Tika-OCRtesseractPath: /dummy"
当然,如果你愿意的话,你也可以在PDF文件中使用这些标题。