java-SOLR tika处理器无法完全抓取我的PDF文件

SOLR开发人员大家好,

我有一些pdf文件,其中包含一些电路图.电路上垂直书写了一些文字.例如,在电路延伸线上的pdf上有一个垂直标记的“连接器连接器”一词,当索引到SOLR中时,该连接器将变成“连接器”.

出于明显的原因,搜索不在给定的关键字上进行.是否可以更改基础处理器?

我试图在独立的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索引文件的方式是这样的,

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核心移出并移到单独的索引工具中.

可以编写一个单独的守护程序,您可以将其提交给文档,并且将来具有不同的索引编制策略,但是尚未进行任何与此相关的工作.

上一篇:php-我们如何监视SOLR数据获取速度?


下一篇:java-Solr-索引大型数据库