SOLR tika 处理器无法完美抓取我的 PDF 文件

SOLR tika processor not crawling my PDF files prefectly

各位 SOLR 开发人员,大家好,

我有一些 pdf 文件,其中有一些电路图。电路上有一些垂直书写的文字。例如,pdf 中有一个单词 "junction connector" 标记,垂直地,在电路延伸上,当索引到 SOLR 时变为 "j u n c t i o n C o n n e c t o r".

由于显而易见的原因,没有对给定的关键字进行搜索。是否可以更改底层处理器?

我尝试在独立 java class 中使用 'itextpdf' 将 pdf 转换为文本,并且 'itextpdf' 打印的文本足够体面。当我使用 'Apache Tika' 阅读同一个 pdf 时,我看到很多单词被空格打断,显然类似于 SOLR 所做的。

例如,是否有可能开发和集成 'itextpdf' 实体处理器?或任何其他自定义实体处理器?

我最糟糕的替代方法是使用 solrj 并读取 pdf 并为其编制索引,但如前所述,由于环境和设计限制,这将是我最糟糕的替代方法。

使用 SOLR 5.3.1

我现在正在使用 tika 处理器,

<dataConfig>
<dataSource type="BinFileDataSource" />
<document>
    <entity name="tika-test" processor="TikaEntityProcessor"
            url="C:\Users345\Downloads\workspace\Playground\circuits.pdf" format="text">
            <field column="Author" name="creator" meta="true"/>
            <field column="title" name="producer" meta="true"/>
            <field column="text" name="text"/>
    </entity>
</document>

SOLR索引文档的方式是这样的,

P o w e r Sou rc e T h e ft D e te rre n t a n d W ire le s s D o o r L o c k C o n tro l Turn Signal Flasher <6 –5 > DHEJ T–O V–R DJF C ombination M eter

最简单(并不是最坏的情况)的方法是自己编写一个小的 itextpdf 提交模块,扫描目录并使用 SolrJ 将提取的文本提交给 Solr。这也将允许将来更轻松地定制和并行化索引过程(运行 提取和索引过程不仅在一台服务器上)。

无论如何,Tika 提取处理程序可能会在未来某个时候从 Solr 核心移出并移入单独的索引工具。

将来可能会编写一个单独的守护进程,您可以向其提交文档并具有不同的索引策略,但尚未完成任何相关工作。