我正在使用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文件,因为它是在提供的链接中编写的?有没有人有关于如何编写该功能的示例或参考资料?
谢谢
答案 0 :(得分:0)
不,它不能。 IndexFiles是一个演示,一个供您学习的示例,但并非真正用于生产用途。如果你看一下代码,你会发现它只使用了一个FileInputStream(用一个InputStreamReader包装,用BufferedReader包装)。通常,Lucene不会处理如何解析不同的文件格式(当然除了它自己的索引文件)。如何解析文件以向Lucene提供有意义的内容由您来定义。
Apache Tika可能是寻找此功能的好地方。这是一个简单的example using Tika with Lucene。
您可能还会考虑using Solr。