当前位置: 首页 > 面试题库 >

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

戚晨
2023-03-14
问题内容

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

我可以使用ElasticSearch或Solr将原始二进制文档(即.docx,.xlsx,.pdf文件)导入其“数据存储区”,然后根据命令将文档导出到用户的设备以进行查看。

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

缺口


问题答案:

Solr和Elasticsearch都将为文档的 内容
建立索引。Solr具有内置功能,Elasticsearch需要一个插件。两种方法都很容易,都可以在底下使用Tika。

他们俩都不会存储文档本身。您可以尝试让他们这样做,但是它们不是为此而设计的,因此您会遭受痛苦。

此外,目前不建议将Solr和Elasticsearch都用作主存储。他们可以做到,但是对于他们来说,任务并不像文件系统实现那样重要。

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



 类似资料:
  • 问题内容: 说说我有一些小树而不是文档,我需要将它们存储在Lucene索引中。我该怎么做呢? 树中的一个示例节点: 在上面的节点中,“数据”成员变量是用空格分隔的字符串,因此需要全文搜索。“类型”成员变量只是一个单词。 搜索查询本身将是一棵树,并将搜索每个节点中的数据和类型,以及树的结构以查找匹配项。在与子节点匹配之前,查询必须首先与父节点数据和类型匹配。可以对数据值进行近似匹配。 索引此类数据的

  • 主要内容:删除文档,验证执行结果,删除字段,删除所有文档,使用Java(客户端API)删除所有文档删除文档 要从Apache Solr的索引中删除文档,我们需要在标记之间指定要删除的文档的。 这里,此XML代码用于删除为和的文档。将此代码保存在名称为的文件中。 如果要从属于名称为的核心的索引中删除文档,则可以使用工具发布文件,如下所示。 执行上述命令后,将得到以下输出 - 验证执行结果 访问Apache Solr Web界面的主页,选择核心 - my_core。 尝试通过在文本区域中传递查询“

  • 主要内容:使用XML更新文档使用XML更新文档 以下是用于更新现有文档中的字段的XML文件。将下面的内容保存在名称为的文件中。 正如上面看到的,写入更新数据的XML文件就类似之前用来添加文档的文件。 但唯一的区别是这里使用字段的一个属性。 在这个示例中,我们将使用上述文档并尝试更新为文档的字段。 假设XML文档()存在于Solr的bin目录中。更新的核心是名称为的索引,可以使用工具更新如下 - 执行上述命令后,将得到以下输出

  • 问题内容: 将Solr核心迁移到elasticsearch索引的最佳方法是什么? 不推荐使用solr-river-plugin(https://github.com/javanna/elasticsearch-river- solr )。 问题答案: OpenSource Connections中有一个不错的,由爱心人士精心制作的自定义Python工具,您可以用来执行以下操作: https://g

  • ES如何在内部实现度量聚合? 假设索引中的文档具有以下结构: 对于以下对类别进行术语聚合并计算总和(度量)的查询,“度量”字段值 从文档中提取(即\u源)并求和或 查询:

  • 我正在尝试使用他们网站上提供的Docx4j社区包将一个Word文件转换成PDF。(http://www . docx 4 Java . org/docx 4j/docx 4j-community-3 . 3 . 1 . zip) 看起来这个包上的docx4j和FOP之间存在版本不兼容问题,我想知道以前是否有人遇到过这个问题,您是否知道什么版本的库可以实现这个功能。 这是我的代码: 我复制了下面的s