使用ElasticSearch和/或Solr作为MS Office和PDF文档的数据存储
我目前正在设计一个全文搜索系统,用户可以对MS Office和PDF文档执行文本查询,结果将返回与查询最匹配的文档列表。然后,用户可以选择返回的任何文档,并在MS Word、Excel或PDF查看器中查看该文档 我可以使用ElasticSearch或Solr将原始二进制文件(即.docx、.xlsx、.pdf文件)导入其“数据存储”,然后根据命令将文件导出到用户设备以供查看 以前,我使用MongoDB 2.6.6将原始文件导入GridFS,将提取的文本导入一个单独的集合(该集合包含一个文本索引),效果很好。然而,MongoDB全文搜索是非常基本的,因此我现在研究Solr或ElasticSearch来执行更复杂的文本搜索 尼克关于solr: 如果只需要在元数据搜索时返回文档,Solr提供了一个BinaryField字段类型,您可以将二进制数据base64编码发送到该字段类型。请记住,一般情况下,人们建议不要这样做,因为这可能会增加索引(RAM要求/性能),如果可能的话,还可以在外部存储文件(以及solr中文件的路径)可能是更好的选择使用ElasticSearch和/或Solr作为MS Office和PDF文档的数据存储,pdf,solr,elasticsearch,ms-office,Pdf,Solr,elasticsearch,Ms Office,我目前正在设计一个全文搜索系统,用户可以对MS Office和PDF文档执行文本查询,结果将返回与查询最匹配的文档列表。然后,用户可以选择返回的任何文档,并在MS Word、Excel或PDF查看器中查看该文档 我可以使用ElasticSearch或Solr将原始二进制文件(即.docx、.xlsx、.pdf文件)导入其“数据存储”,然后根据命令将文件导出到用户设备以供查看 以前,我使用MongoDB 2.6.6将原始文件导入GridFS,将提取的文本导入一个单独的集合(该集合包含一个文本索引)
如果您希望solr自动为pdf/doc中的文本编制索引——这可以通过extractingrequesthandler实现:我会尝试Elasticsearch附件插件。详细信息可在此处找到: 它构建在Apache Tika之上: 附件类型 附件类型允许索引不同的“附件”类型字段 (编码为base64),例如,Microsoft Office格式,打开 文档格式、ePub、HTML等(完整列表可在此处找到) 附件类型作为插件扩展提供。插件是 简单的zip文件,可以下载并放置在 $ES_HOME/plugins位置。它将被自动检测到,并且 将添加附件类型 支持的文档格式
- 超文本标记语言
- XML和派生格式
- Microsoft Office文档格式
- OpenDocument格式
- iWorks文档格式
- 可移植文档格式
- 电子出版物格式
- 富文本格式
- 压缩和打包格式
- 文本格式
- 提要和联合格式
- 帮助格式
- 音频格式
- 图像格式
- 视频格式
- Java类文件和归档
- 源代码
- 邮件格式
- CAD格式
- 字体格式
- 科学格式
- 可执行程序和库
- 加密格式
Solr和Elasticsearch都将为文档的内容编制索引。Solr内置了Elasticsearch,需要一个插件。两种方法都很简单,并且都在封面下使用Tika 它们都不会存储文档本身。您可以尝试让它们这样做,但它们不是为存储文档而设计的,您将受到影响 此外,Solr和Elasticsearch目前都不推荐作为主存储。它们可以做到这一点,但对于它们来说,它不像文件系统实现那样至关重要
因此,我建议将文件放在其他地方,并使用Solr/Elasticsearch仅用于搜索。这就是它们的亮点。Elasticsearch确实将文档(.pdf,.docs)存储在
\u source
字段中。它可以用作NoSQL数据存储(与MongoDB相同)。对该方来说有点晚,但这可能对某人有所帮助:)
我有一个类似的问题,一些研究让我发现了这个问题。说明:
此爬虫帮助索引二进制文档,如PDF、Open Office、MS Office
主要功能:
- 本地文件系统(或装入的驱动器)对新文件进行爬网和索引
- 更新现有的并删除旧的。SSH上的远程文件系统 爬行李>
- REST接口,允许您将二进制文档“上载”到elasticsearch