如何索引 PDF 文件并搜索关键字?
我有一堆 PDF(几百个)。它们没有适当的结构,也没有特定的领域。他们所拥有的只是大量的文字。
我想做的事情:
索引 PDF 并根据索引搜索一些关键字。 我有兴趣查找该特定关键字是否在 PDF 文档中,如果是,我想要找到该关键字的行。 如果我在包含该术语的 PDF 文档中搜索“Google”,我希望看到“Google 是一个很棒的搜索引擎”,这是 PDF 中的一行。
我决定如何做:
使用 SOLR 或 Whoosh,但 SOLR 看起来很适合内置 PDF 支持。我更喜欢用 Python 编写代码,Sunburst 是我喜欢的 SOLR 的包装器。 SOLR 的示例/示例项目有一些基于价格比较的模式文件。现在我不确定是否可以使用SOLR来回答我的问题。
你们有什么建议?任何意见都非常感谢。
What I have is a bunch of PDFs (few 100s). They don't have a proper structure nor do they have particular fields. All they have is lot of text.
What I am trying to do :
Index the PDFs and search for some keywords against the index.
I am interested in finding if that particular keyword is in the PDF doc and if it is, I want the line where the keyword is found.
If I searched for 'Google' in a PDF doc that has that term, I would like to see 'Google is a great search engine' which is the line in the PDF.
How I decided to do :
Either use SOLR or Whoosh but SOLR is looking good for inbuilt PDF support. I prefer to code in Python and Sunburst is a wrapper on SOLR which I like.
SOLR's sample/example project has some price comparision based schema file. Now I am not sure if I can use SOLR to answer my problem.
What do you guys suggest? Any input is much appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我认为 Solr 适合您的需求。
“突出显示”功能正是您所寻找的。为此,您必须索引并将文档存储在 lucene 索引中。
突出显示功能返回一个片段,其中标记了搜索的文本。
看看这个: http://wiki.apache.org/solr/HighlightingParameters
I think Solr fits your needs.
The "Highlighting" feature is what you are looking for.. For that you have to index and to store the documents in lucene index.
The highlighting feature returns a snipped, where the searched text is marked.
Look at this: http://wiki.apache.org/solr/HighlightingParameters
另一个离线/独立解决方案:
它使用 PDFBox 和 Apache Lucene,并将为找到的每个关键字创建一个 HTML 索引文件,其中包含指向 PDF 文件中页面的链接。
Another offline/standalone solution:
It uses PDFBox and Apache Lucene and will create a HTML index file with links to the pages in the PDF file for each keyword found.
我曾经通过使用
pdftotext
等实用程序将 PDF 文件转换为文本来解决这个问题(我猜pdftohtml
也可以工作),生成某种“缓存”。然后使用一些grep
我在文本文件缓存中搜索关键字。这与您提出的解决方案略有不同,但我可以想象您也可以从 Python 调用它。
I once solved this by converting the PDF files to text with utilities as
pdftotext
(pdftohtml
would also work I guess), generating a 'cache' of some sorts. Then using somegrep
I searched the text file cache for keywords.This is slightly different from your proposed solution, but I can imagine you can call this from Python as well.