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核心移出并移到单独的索引工具中.
可以编写一个单独的守护程序,您可以将其提交给文档,并且将来具有不同的索引编制策略,但是尚未进行任何与此相关的工作.