如何使用curl强制tika服务器排除TesseractOCRParser



我正在使用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文件中使用这些标题。

最新更新