【问题标题】:Solr 7.5 failing to index pdf files after upgrade from Solr 6.3从 Solr 6.3 升级后,Solr 7.5 无法索引 pdf 文件
【发布时间】:2019-03-11 04:37:52
【问题描述】:

我们刚刚从 Solr 6.3 升级到 7.5。在不更改架构或配置的情况下,我们尝试索引的几乎每个 pdf 文件都会收到 400 错误。这些是 Solr 6.3 索引没有问题的文件。所有其他类型的复杂文件都像以前一样被索引,只是导致问题的 pdf 文件。

线索 #1:在大约 1900 个 pdf 文件中,只有 2 个被成功处理。我们的大多数 pdf 文件都有主题和标题,但这两个没有。

线索 #2:在控制台日志中,我们看到如下失败消息:RequestHandlerBaseorg.apache.solr.common.SolrException: undefined field: "pdf_docinfo_title"

我在架构中找不到具有该名称的字段。对 pdf_docinfo_title 的谷歌搜索没有发现任何有用的信息。

【问题讨论】:

    标签: solr solr-cell


    【解决方案1】:

    由于您没有具有该名称的字段,并且没有包罗万象的定义,因此当 Tika 将带有字段 pdf_docinfo_title 的文档交还给 Solr 时,Solr 会拒绝。

    由于 Tika 可能会在 Solr 版本之间升级,因此与 6.3 捆绑的旧版本的 Tika 不包含此字段,而与 7.5 捆绑的版本正确提供了它。它代表 pdf 文件的文档标题。

    您还可以使用 fmap 参数将 Tika 中的字段映射到架构中的不同字段:

    fmap.<source_field>

    将一个字段名称映射(移动)到另一个字段名称。 source_field 必须是传入文档中的字段,值是要映射到的 Solr 字段。示例:fmap.content=text 使 Tika 生成的内容字段中的数据移动到 Solr 的文本字段。

    您也可以使用参数uprefix 让Tika 模块为所有未知字段添加一个公共前缀:

    uprefix

    使用给定前缀为架构中未定义的所有字段添加前缀。这在与动态字段定义结合使用时非常有用。示例:uprefix=ignored_ 将有效地忽略 Tika 生成的所有未知字段,因为示例架构包含 <dynamicField name="ignored_*" type="ignored"/>

    【讨论】:

    • 这正是问题所在 - 谢谢! (抱歉响应缓慢,但测试修复程序花了这么长时间(不要问)。)
    猜你喜欢
    • 2011-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-25
    相关资源
    最近更新 更多