2011-07-25 110 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