嗨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联合计算机
答案 0 :(得分:3)
最简单(而不是最糟糕的情况)替代方法是自己编写一个小的itextpdf提交模块,扫描目录并使用SolrJ将提取的文本提交给Solr。这样可以在将来更轻松地定制和并行化索引过程(在多个服务器上运行提取和索引过程)。
Tika提取处理程序可能会在未来的某个时间从Solr核心转移到单独的索引工具中。
有可能编写一个单独的守护程序,您可以将文档提交给将来具有不同的索引策略,但尚未完成与此相关的任何工作。