Solr Cell无法使用EXIF索引图像文件

时间:2017-08-28 12:43:48

标签: solr exif solr-cell

我刚刚安装了Solr6.6.0。在CentOS上,让它使用提供的示例' sample_techproducts_configs'。我能够索引文件,但是只要我提供一个图像文件,我就会得到一个关于无效日期的例外情况。 Solr单元格从EXIF中提取日期,然后似乎无法将其传递给Solr。 我使用了以下图像文件:

http://www.imagemagick.org/Usage/photos/pagoda_sm.jpg

并且Solr的回复是:

<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader"><int name="status">400</int><int name="QTime">114</int></lst><lst name="error"><lst name="metadata"><str name="error-class">org.apache.solr.common.SolrException</str><str name="root-error-class">org.apache.solr.common.SolrException</str></lst><str name="msg">Invalid Date String:'2005-07-09T14:05:15'</str><int name="code">400</int></lst>
</response>

它投诉的日期格式为yyyy-MM-dd'T'HH:mm:ss,根据以下内容应为默认日期格式:

https://cwiki.apache.org/confluence/display/solr/Uploading+Data+with+Solr+Cell+using+Apache+Tika

我正在寻找修复或至少解决方法,因此它将跳过日期并仅从EXIF索引其他信息。

1 个答案:

答案 0 :(得分:0)

在一个运行多年的procution环境中发生了一个非常类似的错误。我将其跟踪到SOLRs schema.xml中的更改。为动态日期字段添加了新的通配符字段:

<dynamicField name="date_*" type="tdate" indexed="true" stored="true" multiValued="true"/>

用于exif提取的Tikas库似乎尝试为与此动态字段定义匹配的EXIF日期字段创建字段。由于EXIF日期格式与TrieDateField类中使用的SOLR默认日期格式(ISO 8601)不匹配,因此会发生解析错误。

删除此通配符字段并切换到特定的字段定义对我有用。在这种情况下,datefield-values不会被索引,但EXIF数据的其余部分是。

导入这些日期格式的另一种方法是使用正则表达式实现Filter检查输入日期并将结果转换为正确的格式。

也许你的问题有些相关,或者它可以帮助其他人调试类似的问题。