SOLR tika处理器没有完全抓取我的PDF文件

时间:2015-10-22 23:59:56

标签: java pdf solr apache-tika itextpdf

嗨SOLR开发人员,

我有一些pdf文件,里面有一些电路图。在电路上垂直写有一些文字。例如,pdf中有一个“连接器连接器”字,垂直地标记在电路段上,当索引到SOLR中时,它变成“j u n c t o o n C o n n e c t o r”。

由于显而易见的原因,搜索不会发生在给定的关键字上。是否可以更改底层处理器?

我尝试在独立的java类中使用'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:\Users\12345\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索引文档的方式是这样的,

  

使用传感器和传感器闪光灯&lt; 6-5&gt;&lt; 6-5&gt;&lt; 6-5&gt;&lt; 6-5&gt; DHEJ T-O V-R DJF联合计算机

1 个答案:

答案 0 :(得分:3)

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

Tika提取处理程序可能会在未来的某个时间从Solr核心转移到单独的索引工具中。

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