2011-07-25 52 views
8

我所拥有的是一堆PDFs(少数100s)。他们没有合适的结构,也没有特定的领域。他们都有很多文字。如何索引PDF文件并搜索关键字?

我所试图做的事:

指数PDF和搜索对索引一些关键字。 我有兴趣查找该PDF文档中是否包含该特定关键字,如果是,则需要找到该关键字的行。 如果我在包含该术语的PDF文档中搜索“Google”,我希望看到'Google是一个很棒的搜索引擎',它是PDF中的一行。

如何,我决定做:

无论是使用SOLR或嗖但SOLR是好看的内置PDF支持。我更喜欢用Python编码,Sunburst是我喜欢的SOLR封装。 SOLR的示例/示例项目有一些基于价格比较的模式文件。现在我不确定是否可以使用SOLR来回答我的问题。

你们有什么建议?任何输入都非常感谢。

+1

您是否建议通过每个PDF包含的每个单词或词组来编制索引?如果不是,您将如何生成关键字列表? – smci

+0

我有一个关键字实际上的列表。我想索引PDF中的所有内容,然后使用我的关键字针对该索引运行搜索。 – ThinkCode

回答

5

我认为Solr符合您的需求。

“突出显示”功能是你正在寻找..为此,你必须索引和存储在lucene索引文件。

突出显示的功能会返回一个剪切的内容,其中搜索的文本被标记。

看看这个:http://wiki.apache.org/solr/HighlightingParameters

+0

如何在默认模板的搜索结果中启用/显示“突出显示”?现在我只看到XML(作者,content_type,id,上次修改和标题)。谢谢! – ThinkCode

+0

突出显示nedds TermVecors http://wiki.apache.org/solr/TermVectorComponent - 所以你必须重新索引女巫激活TermVectorComponent –

+0

非常感谢,它现在显示PDF中的所有文本。我将所有文本复制到字段“文本”。现在当我搜索时,它显示所有的文本,而我只想从'文本'中具有匹配字符串的行。我的模式文件:http://pastebin.com/Cp1CsZ9Z – ThinkCode

2

有一次,我解决了这个通过转换PDF文件与公用事业文本为pdftotextpdftohtml也将工作我猜),产生的某些种类的“缓存”。然后使用一些grep我搜索了文本文件缓存中的关键字。

这与您提出的解决方案略有不同,但我可以想象,您也可以从Python调用此方法。

+1

谢谢蒂姆。直到找到SOLR,您的解决方案才是我的第一步。SOLR按需提供,速度更快。只是想知道SOLR是否可以在我的环境中使用,我想我可以! – ThinkCode

+0

好吧,这听起来不错:)也许这个'离线'的解决方案可能对别人读这个有用... – Tim