我正在尝试让Solr索引一个数据库,其中一列是我要索引的PDF文档的文件名。我的配置如下所示:
<dataConfig>
<dataSource name="ds-db" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/document_db" user="user" password="password" readOnly="true"/>
<dataSource name="ds-file" type="BinFileDataSource"/>
<document name="documents">
<entity name="document" dataSource="ds-db" query="select * from documents">
<entity processor="TikaEntityProcessor" url="/some/path/${document.filename}" dataSource="ds-file" format="text">
<field column="text" />
</entity>
</entity>
</document>
</dataConfig>
我从主干使用Solr(截至上周)。导入过程完成且没有错误,它从数据库中获取列,但不从PDF文件中获取内容。它肯定试图访问PDF文件,因为如果我给它一个不正确的路径名,它会抱怨。但是,它似乎没有尝试索引PDF,因为它在大约40ms内完成,而如果我通过ExtractingRequestHandler
导入PDF,则需要大约11秒来对其进行索引。
我也尝试了示例-DIH中的tika示例,但似乎也没有索引任何内容。我做错了什么,或者这只是不起作用?
我在OSX 10.6.3上运行Java 1.6.0_20。
(我应该注意到我已经在solr-user邮件列表上发布了这个并没有得到答案。)
答案 0 :(得分:2)
solr-user邮件列表上的某个人有答案:http://lucene.472066.n3.nabble.com/TikaEntityProcessor-not-working-tp856965p867572.html
基本上,在版本0.6之后引入的Apache Tika中存在一个错误,它显然仍然出现在目前位于Solr主干的0.8快照中。下载Tika 0.6(来自http://archive.apache.org/dist/lucene/tika/)并将tika-core-0.6.jar和tika-parsers-0.6.jar复制到修复该问题的路径中。