Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何为PDF文件编制索引并搜索关键字?_Python_Pdf_Indexing_Solr - Fatal编程技术网

Python 如何为PDF文件编制索引并搜索关键字?

Python 如何为PDF文件编制索引并搜索关键字?,python,pdf,indexing,solr,Python,Pdf,Indexing,Solr,我拥有的是一堆PDF文件(只有几个100)。它们没有适当的结构,也没有特定的字段。他们只有大量的文本 我想做什么: 索引PDF并根据索引搜索一些关键字。 我感兴趣的是查找PDF文档中是否存在该特定关键字,如果存在,我希望找到该关键字所在的行。 如果我在PDF文档中搜索“谷歌”这个词,我希望看到“谷歌是一个伟大的搜索引擎”,这是PDF中的一行 我决定怎么做: 可以使用SOLR,也可以使用Whoosh,但SOLR在内置PDF支持方面看起来不错。我更喜欢用Python编写代码,Sunburst是我喜欢

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

我想做什么:

索引PDF并根据索引搜索一些关键字。 我感兴趣的是查找PDF文档中是否存在该特定关键字,如果存在,我希望找到该关键字所在的行。 如果我在PDF文档中搜索“谷歌”这个词,我希望看到“谷歌是一个伟大的搜索引擎”,这是PDF中的一行

我决定怎么做:

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


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

我认为Solr适合您的需要

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

突出显示功能返回一个被剪断的文本,其中搜索的文本被标记


看看这个:

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


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

另一个脱机/独立解决方案:

  • 它使用PDFBox和apachelucene,并将为找到的每个关键字创建一个HTML索引文件,其中包含指向PDF文件中页面的链接

您是否建议按PDF中包含的每个单词或短语为其编制索引?如果没有,你将如何生成一个关键字列表?我实际上有一个关键字列表。我想索引PDF中的所有内容,然后使用我的关键字对该索引进行搜索。谢谢Tim。你的解决方案是我找到SOLR之前的第一个方法。SOLR按需执行此操作,速度更快。只是想知道SOLR是否可以在我的上下文中使用,我想我可以!好的,听起来不错:)也许这个“脱机”解决方案对其他阅读此内容的人可能有用……如何在默认模板的搜索结果中启用/显示“突出显示”?现在我只看到XML(作者、内容类型、id、上次修改和标题)。谢谢突出显示TERMvector的NEDD-因此您必须再次索引已激活的TERMvector组件非常感谢,它现在显示了PDF中的所有文本。我将所有文本复制到“文本”字段。现在,当我搜索时,它显示所有文本,而我只需要“text”中具有匹配字符串的行。我的架构文件: