0

我正在使用来自 Lucene 4.2.0 演示 API 的示例源代码:http: //lucene.apache.org/core/4_2_0/demo/overview-summary.html

我运行 IndexFiles.java 从 rtf、pdf、doc 和 docx 文件的目录创建索引。然后我运行 SearcFiles.java 并注意到我遇到了几个我的搜索失败的实例,即它没有返回包含我搜索的单词的文档。

我怀疑这与 Lucene 4.2.0 在没有额外定制的情况下无法正确索引非 .txt 文件有关。

问题:IndexFiles.java 源代码 (Lucene 4.2.0) 能否正确索引 pdf、doc、docx 文件,因为它是在提供的链接中编写的?有没有人有关于如何编写该功能的示例或参考?

谢谢你

4

1 回答 1

0

不,它不能。IndexFiles 是一个演示,一个供您学习的示例,但并不是真正为生产使用而设计的。如果你看一下代码,你会发现它只使用了一个 FileInputStream(用 InputStreamReader 包装,用 BufferedReader 包装)。通常,Lucene 不会处理如何解析不同的文件格式(当然,除了它自己的索引文件)。如何解析文件以向 Lucene 提供有意义的内容由您来定义。

Apache Tika可能是寻找此功能的好地方。这是一个使用 Tika 和 Lucene的简单示例。

您也可以考虑使用 Solr

于 2013-05-20T03:15:55.993 回答