如何在 Apache SolR 中索引 pdf/word 文档

Posted

技术标签:

【中文标题】如何在 Apache SolR 中索引 pdf/word 文档【英文标题】:How to index a pdf / word doc in Apache SolR 【发布时间】:2016-08-11 10:15:52 【问题描述】:

我是大数据环境的新手,因此如果以下查询毫无意义,请先道歉。

我想阅读一个 word/pdf 文档并在 SolR 中索引这些文档。我了解 SolR 接受 JSON 或 XML 格式,而不是 word / pdf / txt 文件。在将文档发送到 SolR 之前,是否需要将 word/pdf 文档转换为 JSON 或 XML?我最初认为我应该使用 Tika,但我的理解是 Tika 可以将 pdf 转换为文本而不是 JSON。

能否请您指导如何在 Solr 中建立索引?

感谢您的帮助

【问题讨论】:

请阅读Documentation - JSON / XML 格式只是对您提交的文件的描述 @user1859022 - 谢谢。我只能单独索引文档的元数据。但是,我无法从这些文档中索引实际内容。无论如何可以提取实际内容吗? 【参考方案1】:

索引“丰富文件”的标准端点位于update/extract,因此如果您将文件发布到该目的地,Solr 将在内部通过 Tika 运行它,提取文本和属性。您可以通过带有 literal.fieldname=value 参数的 URL(例如 ID、文件名、其他元数据)提供文字值。

手册中的Uploading Data with Solr Cell using Apache Tika 描述为您简要介绍了如何通过 HTTP 使用 curl 提交文档,以及启用自动提取所需的配置选项(在一些示例中启用) (数据驱动,技术产品 iirc)):

如果您不使用提供的 sample_techproducts_configs 或 data_driven_schema_configs 配置集,则必须配置自己的 solrconfig.xml 以了解包含 ExtractingRequestHandler 的 Jar 及其依赖项:

<lib dir="$solr.install.dir:../../../contrib/extraction/lib" regex=".*\.jar" />`
<lib dir="$solr.install.dir:../../../dist/" regex="solr-cell-\d.*\.jar" />

然后您可以在 solrconfig.xml 中配置 ExtractingRequestHandler。

<requestHandler name="/update/extract" class="org.apache.solr.handler.extraction.ExtractingRequestHandler">
  <lst name="defaults">
    <str name="fmap.Last-Modified">last_modified</str>
    <str name="uprefix">ignored_</str>
  </lst>
  <!--Optional.  Specify a path to a tika configuration file. See the Tika docs for details.-->
  <str name="tika.config">/my/path/to/tika.config</str>
  <!-- Optional. Specify one or more date formats to parse. See DateUtil.DEFAULT_DATE_FORMATS
       for default date formats -->
  <lst name="date.formats">
    <str>yyyy-MM-dd</str>
  </lst>
  <!-- Optional. Specify an external file containing parser-specific properties.
       This file is located in the same directory as solrconfig.xml by default.-->
  <str name="parseContext.config">parseContext.xml</str>
</requestHandler>

【讨论】:

以上是关于如何在 Apache SolR 中索引 pdf/word 文档的主要内容,如果未能解决你的问题,请参考以下文章

Apache Solr 字符串字段或文本字段?

Apache Solr初学者教程(入门之旅)

索引和查询时多个令牌过滤器的Apache Solr性能问题

索引时 Apache SOLR 3.5 挂起

02 Apache Solr: 概览 Solr在信息系统架构中的位置

使用 Apache Solr 进行 Drupal 日期范围索引