我们刚刚从Solr 6.3升级到7.5。在不更改架构或配置的情况下,我们尝试索引的每个pdf文件都会出现400错误。这些是Solr 6.3索引没有问题的文件。所有其他类型的复杂文件都像以前一样被索引,只是导致问题的pdf文件。
提示#1:在大约1900个pdf文件中,只有2个被成功处理。我们的大多数pdf文件都有一个主题和标题,但是这2个却没有。
提示#2:在控制台日志中,我们看到如下失败消息:RequestHandlerBaseorg.apache.solr.common.SolrException:未定义字段:“ pdf_docinfo_title”
我在架构中找不到具有该名称的字段。谷歌搜索pdf_docinfo_title并没有发现任何有用的信息。
答案 0 :(得分:0)
由于您没有该名称的字段,也没有全部定义,因此,当Tika将其交回设置了字段pdf_docinfo_title
的文档时,Solr会拒绝。
由于在可能的Solr版本之间升级了Tika,因此与6.3捆绑在一起的Tika的较早版本未包含此字段,而与7.5捆绑在一起的版本则正确提供了该字段。它代表pdf文件的文档标题。
您还可以使用fmap
参数将字段从Tika映射到架构中的其他字段:
fmap.<source_field>
将一个字段名称映射(移动)到另一个。 source_field必须是传入文档中的字段,并且值是要映射到的Solr字段。示例:
fmap.content=text
会使Tika生成的内容字段中的数据移动到Solr的文本字段中。
您还可以使用参数uprefix
来使Tika模块为所有未知字段添加通用前缀:
uprefix
使用给定前缀为模式中未定义的所有字段添加前缀。与动态字段定义结合使用时,这非常有用。示例:如果示例架构包含
,uprefix=ignored_
<dynamicField name="ignored_*" type="ignored"/>
将有效地忽略Tika生成的所有未知字段