You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Solr 9.1集成Tesseract OCR无输出问题排查求助

Solr 9.1 + Tika 1.28.4 无法触发Tesseract OCR提取(原Solr 8.11.2+Tika1.27配置有效)

背景

在Solr 8.11.2(搭配Tika 1.27)环境中,曾通过修改tika-parsers-1.27.jar内的TesseractOCRConfig.properties文件,成功实现Tesseract 5.2.0的OCR文本提取,配置内容如下:

tesseractPath=C:/Tesseract-OCR
tessdataPath=C:/Tesseract-OCR/tessdata/
language=dan

问题现象

将相同的Tesseract安装配置复用至Solr 9.1(搭配Tika 1.28.4)环境后,JPG文件可被正常提取但无OCR结果。对比同一张JPG文件的x_parsed_by字段:

  • Solr 9.1中字段值:
    "x_parsed_by":["org.apache.tika.parser.DefaultParser",
                   "org.apache.tika.parser.jpeg.JpegParser"],
    
  • Solr 8.11.2中字段值:
    "x_parsed_by":["org.apache.tika.parser.DefaultParser",
                   "org.apache.tika.parser.ocr.TesseractOCRParser",
                   "org.apache.tika.parser.jpeg.JpegParser"],
    

明显可见Solr 9.1未触发TesseractOCRParser执行OCR操作。

排查与解决步骤

1. 检查Tika依赖包结构变化

Tika 1.28.x版本开始,OCR相关组件从原tika-parsers包拆分至独立的tika-parsers-ocr模块。需确认Solr 9.1的classpath中是否包含tika-parsers-ocr-1.28.4.jar,以及配套的tika-core、tika-parsers-standard-package等依赖包,若缺失需补充对应jar包。

2. 调整Tesseract配置方式

Tika 1.28+不再推荐直接修改jar包内的配置文件,建议通过自定义tika-config.xml实现配置:

  • 在Solr核心的conf目录下创建tika-config.xml,添加Tesseract配置:
    <?xml version="1.0" encoding="UTF-8"?>
    <properties>
      <parsers>
        <parser class="org.apache.tika.parser.ocr.TesseractOCRParser">
          <params>
            <param name="tesseractPath" type="string">C:/Tesseract-OCR</param>
            <param name="tessdataPath" type="string">C:/Tesseract-OCR/tessdata/</param>
            <param name="language" type="string">dan</param>
          </params>
        </parser>
      </parsers>
    </properties>
    
  • 在Solr的solrconfig.xml中指定该配置文件路径,确保Tika加载时读取:
    <updateRequestProcessorChain name="add-unknown-fields-to-the-schema">
      <processor class="solr.TikaEntityProcessorFactory">
        <str name="tikaConfig">${solr.core.config}/tika-config.xml</str>
      </processor>
      <!-- 保留原有其他处理器配置 -->
    </updateRequestProcessorChain>
    

3. 验证Tesseract可执行文件的可用性

  • 确认Solr运行用户对C:/Tesseract-OCR/tesseract.exe拥有执行权限;
  • 检查路径拼写是否正确(Windows环境注意斜杠/与反斜杠\的格式,配置中两种均可识别);
  • 手动执行tesseract --version确认Tesseract本身可正常运行,且tessdata目录下存在dan.traineddata语言包。

4. 查看Solr日志定位错误

检查Solr日志文件(如solr.log),搜索tesseract、OCR、TesseractOCRParser等关键词,确认是否存在解析器加载失败、路径找不到、语言包缺失等错误信息,这些日志能直接定位问题根源。

5. 确认Tika解析器触发逻辑

Tika 1.28+中,JpegParser默认可能不会自动触发OCR解析,需确保TesseractOCRParser被正确注册为辅助解析器。可在tika-config.xml中添加如下配置,让图片类文件优先触发OCR解析:

<parsers>
  <parser class="org.apache.tika.parser.DefaultParser">
    <params>
      <param name="ocrStrategy" type="string">OCR_ONLY</param>
    </params>
  </parser>
  <!-- 保留TesseractOCRParser配置 -->
</parsers>

内容的提问来源于stack exchange,提问作者Blem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 10:10:20