3

我试图让 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,因为它在大约 40 毫秒内完成,而如果我通过 导入 PDF ExtractingRequestHandler,索引它大约需要 11 秒。

我还尝试了 example-DIH 中的 tika 示例,它似乎也没有索引任何内容。我做错了什么,还是这还没有工作?

我在 OSX 10.6.3 上运行 Java 1.6.0_20。

(我应该注意到我已经在 solr-user 邮件列表上发布了这个并且没有得到答复。)

4

1 回答 1

2

solr-user 邮件列表中的某个人给出了答案: http: //lucene.472066.n3.nabble.com/TikaEntityProcessor-not-working-tp856965p867572.html

基本上,Apache Tika 中存在一个在 0.6 版之后引入的错误,并且它显然仍然存在于当前 Solr 主干中的 0.8 快照中。下载 Tika 0.6(来自http://archive.apache.org/dist/lucene/tika/)并将 tika-core-0.6.jar 和 tika-parsers-0.6.jar 复制到路径中解决了这个问题。

于 2010-06-04T18:40:16.127 回答