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

How do I force tika server to exclude the TesseractOCRParser using curl

我正在 运行ning tika-server-1.23.jar 使用 tesseract 并通过 php 使用 curl 从文件中提取文本。有时 运行 使用 OCR 花费的时间太长,因此我偶尔会排除 运行ning tesseract。我可以通过插入

来做到这一点

<parser-exclude class="org.apache.tika.parser.ocr.TesseractOCRParser"/>

在 tika 配置 xml 文件中,但这意味着它永远不会 运行s tesseract。

我可以通过 curl 强制 tika 服务器在每次请求时有选择地跳过使用 tesseract 吗?如果可以,怎么做?

我有一个解决方法,我正在 运行 连接两个 tika 服务器实例,每个实例都有不同的配置文件侦听不同的端口,但这是次优的。

提前致谢。

您可以使用 headers 为 PDF 文件设置 OCR 策略,其中包括不进行 OCR 的选项:

curl -T test.pdf http://localhost:9998/tika --header "X-Tika-PDFOcrStrategy: no_ocr"

对于其他文件类型并没有真正的等价物,但是有一个类似的 header 前缀调用 X-Tika-OCR 允许您在用于任何文件类型时在 TesseractOCRConfig 实例上设置配置.

您有一些可能对您的场景感兴趣的选项:

  • maxFileSizeToOcr - 您可以将其设置为 0
  • timeout - 您可以将其设置为您愿意给予的超时时间
  • tesseractPath - 你可以设置为任何东西,如果它找不到它,它就无法执行

因此,例如,如果您想跳过一个文件,您可以将最大文件大小设置为 0,这意味着它不会被处理:

curl -T testOCR.jpg http://localhost:9998/tika  --header "X-Tika-OCRmaxFileSizeToOcr: 0"

或者设置路径为/dummy:

curl -T testOCR.jpg http://localhost:9998/tika  --header "X-Tika-OCRtesseractPath: /dummy"

如果您愿意,您当然也可以将这些 header 用于 PDF 文件。