Solr PDF搜索:“转到页面”功能

4
我们正在使用Solr和Lucene构建一个PDF搜索引擎,用户可以在其中搜索PDF中的文本。数据库仅包含PDF文件。
在搜索结果页面(“/browse”)上,我们想要将PDF文件附加到#page=X,其中X是找到文本的页码。(如果使用锚标记指定,则Adobe Acrobat会自动滚动到某个页面。)
例如,如果我搜索foobar,并且有一个PDF文档在第5页上有foobar,则链接应为http://pdfserver/pdfs/pdf.pdf#page=5(请注意末尾的锚点)。
问题:
1.这可行吗?
2.我们如何获取此页码?

我不认为我理解你实际想要实现的是什么。你想索引PDF文件并返回匹配文本所在页码,还是其他什么? - omu_negru
就是这样。所以,如果我搜索“foobar”,并且有一个PDF文档,在第5页上有“foobar”,那么链接应该是http://pdfserver/pdfs/pdf.pdf#page=5。 - Simon Fredsted
你有没有找到解决方案?当索引大量PDF文件时,这似乎是一个基本要求。 - MrTelly
@MrTelly,我使用了#search解决方案并对搜索词进行了URL编码。 - Simon Fredsted
2个回答

1
我发现一种易于实现的解决方案是在IE中嵌入Adobe Reader时使用支持#search参数。例如:

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

Adobe Reader会跳转到该页。

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


0

Apache Tika可以将PDF文件转换为结构化数据,以便您将其馈送到Solr服务器中。

我对您的问题的解决方法是每页索引一个PDF,附加字段链接到章节、文本标题(或绝对路径、或两者兼备)和页码。使用这些数据,您可以在相关页面打开相应的文档。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接