Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.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
使用ElasticSearch和/或Solr作为MS Office和PDF文档的数据存储_Pdf_Solr_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Ms Office - Fatal编程技术网 elasticsearch,ms-office,Pdf,Solr,elasticsearch,Ms Office" /> elasticsearch,ms-office,Pdf,Solr,elasticsearch,Ms Office" />

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

使用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,将提取的文本导入一个单独的集合(该集合包含一个文本索引)

我目前正在设计一个全文搜索系统,用户可以对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中文件的路径)可能是更好的选择


如果您希望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

这就是为什么Solr有这样的优势。使用它时,您不需要自己重新发明索引与文件系统的处理。感谢您解释在Solr中存储二进制数据的限制(我假设同样的限制也适用于ElasticSearch)。谢谢!我现在正在考虑将文档存储在mongo中,并将提取的文本存储在ElasticSearch中(使用MongoDB river插件作为链接)@ngekas您可以使用Ambar作为解决方案,我们开发了它来解决此类问题。在这里检查一下,你可以考虑一下。它读取文件,使用Tika提取元数据,并将二进制内容存储在ES内(作为二进制元素)或外部文件系统中。您还可以使用它来测试您的用例(存储大量二进制文件或大量二进制文件可能会导致ES群集问题)。嗨,您能否提供有关用于满足您需求的解决方案的任何反馈,以及您在尝试实现搜索引擎时遇到的问题?提前谢谢。你是如何从PDF中提取文本的?您是否有一些自定义工具来执行此操作,或者弹性搜索也在处理此操作?第一个链接似乎已断开。修复了链接,页面已移动我可以使用hadoop存储数据并使用mapper attachments插件吗?有可能吗?这种方法在较新版本的Elasticsearch中不再有效,它已被ingest attachment插件取代。