使用ElasticSearch和/或Solr作为MS Office和PDF文档的数据存储

时间:2015-01-16 05:41:17

标签: pdf solr elasticsearch ms-office

我目前正在设计一个全文搜索系统,用户可以在其中对MS Office和PDF文档执行文本查询,结果将返回与查询最匹配的文档列表。然后,用户将选择返回的任何文档,并在MS Word,Excel或PDF查看器中查看该文档。

我可以使用ElasticSearch或Solr将原始二进制文档(即.docx,.xlsx,.pdf文件)导入其数据存储",然后将文档导出到用户&#39 ; s设备按命令查看。

以前,我使用MongoDB 2.6.6将原始文件导入GridFS,并将提取的文本导入单独的集合(该集合包含文本索引),并且工作正常。但是,MongoDB全文搜索是非常基础的,因此我现在正在寻找Solr或ElasticSearch来执行更复杂的文本搜索。

尼克

5 个答案:

答案 0 :(得分:22)

Solr和Elasticsearch都将索引文档的内容。 Solr有内置功能,Elasticsearch需要一个插件。两种方式都很简单,两者都使用Tika。

他们都不会存储文件本身。你可以尝试让他们这样做,但他们不是为它设计的,你会受苦。

此外,Solr和Elasticsearch目前都不建议用作主存储。他们可以做到这一点,但对于他们而言,对于文件系统实现而言,它并不是关键任务。

因此,我建议将文件放在其他地方并使用Solr / Elasticsearch进行搜索。这就是他们发光的地方。

答案 1 :(得分:14)

我会尝试使用Elasticsearch附件插件。详情请见:

https://www.elastic.co/guide/en/elasticsearch/plugins/2.2/mapper-attachments.html

https://github.com/elasticsearch/elasticsearch-mapper-attachments

它建立在Apache Tika之上:

http://tika.apache.org/1.7/formats.html

附件类型

  

附件类型允许索引不同的"附件"类型字段   (编码为base64),例如,Microsoft Office格式,打开   文档格式,ePub,HTML等(完整列表可以在这里找到)。

     

附件类型作为插件扩展提供。该插件是一个   简单的zip文件,可以下载和下载   $ ES_HOME / plugins位置。它会被自动检测到   附件类型将被添加。

支持的文档格式

  
      
  • 超文本标记语言

  •   
  • XML和派生格式

  •   
  • Microsoft Office文档格式
  •   
  • OpenDocument格式
  •   
  • iWorks文档格式
  •   
  • 可移植文档格式
  •   
  • 电子出版物格式
  •   
  • 富文本格式
  •   
  • 压缩和包装格式
  •   
  • 文字格式
  •   
  • Feed和联合供稿格式
  •   
  • 帮助格式
  •   
  • 音频格式
  •   
  • 图片格式
  •   
  • 视频格式
  •   
  • Java类文件和档案
  •   
  • 源代码
  •   
  • 邮件格式
  •   
  • CAD格式
  •   
  • 字体格式
  •   
  • 科学格式
  •   
  • 可执行程序和库
  •   
  • 加密格式
  •   

答案 2 :(得分:0)

关于solr:

如果仅需要在元数据搜索上返回文档,Solr会提供BinaryField字段类型,您可以向其发送二进制数据base64编码。请记住,一般人建议不要这样做,因为它可能会增加您的索引( RAM要求/性能),如果可能的话,在外部存储文件的设置(以及solr中文件的路径)可能是更好的选择。

如果你想让solr自动索引pdf / doc中的文本 - 这可以通过extractrequesthandler来实现:https://wiki.apache.org/solr/ExtractingRequestHandler

答案 3 :(得分:0)

Elasticsearch会在_source字段中存储文档(例如.pdfs,.docs)。它可以用作NoSQL数据存储区(与MongoDB相同)。

答案 4 :(得分:0)

参加聚会有点晚,但这可能会帮助某人:)

我遇到了类似的问题,一些研究使我想到了fscrawler。说明:

  

此搜寻器有助于索引二进制文档,例如PDF,Open Office,MS Office。

主要功能:

  • 本地文件系统(或已安装的驱动器)对新文件进行爬网和编制索引,
  • 更新现有的并删除旧的。通过SSH的远程文件系统 爬行。
  • REST接口,可让您将二进制文档“上载”到elasticsearch。
相关问题