【问题标题】:How do I Index PDF files and search for keywords?如何索引 PDF 文件并搜索关键字?
【发布时间】:2011-10-12 23:11:56
【问题描述】:

我拥有的是一堆 PDF(几百个)。它们没有适当的结构,也没有特定的字段。他们所拥有的只是大量的文字。

我想要做什么:

索引 PDF 并根据索引搜索一些关键字。 我有兴趣查找该特定关键字是否在 PDF 文档中,如果是,我想要找到该关键字的行。 如果我在包含该术语的 PDF 文档中搜索“Google”,我希望看到“Google 是一个很棒的搜索引擎”,这是 PDF 中的一行。

我决定怎么做:

使用 SOLR 或 Whoosh,但 SOLR 看起来很适合内置 PDF 支持。我更喜欢用 Python 编写代码,而 Sunburst 是我喜欢的 SOLR 的包装器。 SOLR 的示例/示例项目有一些基于价格比较的模式文件。现在我不确定是否可以使用 SOLR 来回答我的问题。

你们有什么建议?非常感谢任何意见。

【问题讨论】:

  • 您是否建议按每个 PDF 包含的每个单词或短语对其进行索引?如果没有,您将如何生成关键字列表?
  • 我实际上有一个关键字列表。我想为 PDF 中的所有内容编制索引,然后使用我的关键字对该索引进行搜索。

标签: python pdf indexing solr


【解决方案1】:

我认为 Solr 符合您的需求。

“突出显示”功能正是您所寻找的。为此,您必须索引并将文档存储在 lucene 索引中。

突出显示功能返回一个片段,其中标记了搜索的文本。

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

【讨论】:

  • 如何在默认模板的搜索结果中启用/显示“突出显示”?现在我只看到 XML(作者、content_type、id、最后修改和标题)。谢谢!
  • highlighting nedds the TermVecors wiki.apache.org/solr/TermVectorComponent - 所以你必须再次索引激活的 TermVectorComponent
  • 非常感谢,它现在显示 PDF 中的所有文本。我将所有文本复制到字段“文本”中。现在,当我搜索时,它会显示所有文本,而我只想要“文本”中具有匹配字符串的行。我的架构文件:pastebin.com/Cp1CsZ9Z
【解决方案2】:

另一种离线/独立解决方案:

【讨论】:

    【解决方案3】:

    我曾经通过使用pdftotext(我猜pdftohtml 也可以)将PDF 文件转换为文本来解决这个问题,生成某种“缓存”。然后使用一些grep 在文本文件缓存中搜索关键字。

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

    【讨论】:

    • 谢谢蒂姆。在我找到 SOLR 之前,您的解决方案是我的第一种方法。 SOLR 按需执行此操作,而且速度更快。只是想知道 SOLR 是否可以在我的上下文中使用,我想我可以!
    • 好吧,听起来不错 :) 也许这种“离线”解决方案可能对其他人阅读本文有用...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-04
    • 2014-09-25
    • 1970-01-01
    • 1970-01-01
    • 2015-03-19
    • 1970-01-01
    相关资源
    最近更新 更多