【问题标题】:Solr PDF search: "Go to page" functionSolr PDF 搜索:“转到页面”功能
【发布时间】:2014-08-20 13:33:51
【问题描述】:

我们正在使用 Solr 和 Lucene 构建 PDF 搜索机器,用户可以在其中搜索 PDF 中的文本。该数据库仅包含 PDF。

在搜索结果页面(“/browse”)中,我们希望在 PDF 文件后面附加#page=X,其中 X 是找到文本的页面。 (如果使用锚标记指定,Adobe Acrobat 会自动滚动到特定页面。)

例如,如果我搜索 foobar 并且有一个 pdf 文档,其中 foobar 在第 5 页,则链接应该是 http://pdfserver/pdfs/pdf.pdf#page=5(注意末尾的锚点)。

  1. 这可能吗?
  2. 我们如何获得这个页码?

【问题讨论】:

  • 我不认为我理解你真正想要达到的目标。您想索引 pdf 文件以及您进行的任何搜索以返回匹配文本的页码还是其他内容?
  • 正是如此。因此,如果我搜索“foobar”并且有一个 pdf 文档,其中“foobar”在第 5 页,则链接应该是 pdfserver/pdfs/pdf.pdf#page=5
  • 您找到解决方案了吗?索引大量 PDF 文件时似乎是一项基本要求。
  • @MrTelly,我使​​用了#search 解决方案并对搜索词进行 URL 编码。

标签: pdf solr lucene acrobat


【解决方案1】:

我发现一个易于实施的解决方案是使用 Adob​​e Reader 在嵌入 IE 时支持的 #search 参数。

例如:

http://pdfserver/pdfs/pdf.pdf#search=foobar

Adobe Reader 然后跳转到该页面。

当然,我们需要对搜索词进行 URL 编码。

【讨论】:

    【解决方案2】:

    Apache tika 可以将 PDF 文件转换为结构化数据,供您输入 solr 服务器。

    我解决您的问题的方法是为每页的每个 pdf 编制索引,并使用额外的字段链接到章节、文本标题(或绝对路径,或两者)和页码。使用这些数据,您可以在以下位置打开相关文档相关页面。

    在此处阅读有关 tika 的更多信息:http://tika.apache.org/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-02
      • 1970-01-01
      • 2018-02-03
      • 1970-01-01
      • 2013-03-14
      • 2021-04-30
      • 2013-01-10
      • 1970-01-01
      相关资源
      最近更新 更多