如何索引PDF文件并搜索关键词?
我手里有一堆PDF文件(几百个)。这些文件没有什么特别的结构,也没有特定的字段,里面全是文字。
我想做的事情:
我想给这些PDF建立一个索引,然后可以根据这个索引搜索一些关键词。 我想知道某个关键词是否在PDF文档里,如果有的话,我还想知道这个关键词出现在哪一行。 比如,如果我在一个包含“Google”这个词的PDF里搜索,我希望能看到“Google是一个很棒的搜索引擎”这句话。
我决定怎么做:
我考虑使用SOLR或者Whoosh,但SOLR在PDF支持方面看起来更好。我比较喜欢用Python编程,而Sunburst是一个基于SOLR的工具,我觉得挺不错的。 SOLR的示例项目有一个关于价格比较的架构文件。现在我不太确定我能否用SOLR来解决我的问题。
你们有什么建议吗?任何意见都非常感谢。
3 个回答
2
我曾经用一种方法解决了这个问题,就是把PDF文件转换成文本,使用的工具是 pdftotext
(我想 pdftohtml
也可以用)。这样我就生成了一个类似“缓存”的东西。然后我用 grep
工具在这个文本文件的缓存里搜索关键词。
这个方法和你提的方案有点不同,但我想你也可以在Python里调用这个方法。
4
还有一个离线/独立的解决方案:
- https://github.com/WolfgangFahl/pdfindexer 这个工具使用了PDFBox和Apache Lucene,可以为每个找到的关键词创建一个HTML索引文件,里面有指向PDF文件中各个页面的链接。
5
我觉得Solr很适合你的需求。
你需要的就是“高亮”这个功能。为了使用这个功能,你需要把文档放到lucene索引里进行索引和存储。
高亮功能会返回一个片段,其中搜索到的文本会被标记出来。
你可以看看这个链接: http://wiki.apache.org/solr/HighlightingParameters