1

我刚刚安装了 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 中的其他信息。

4

1 回答 1

0

在运行了多年的生产环境中,我也遇到了一个非常相似的错误。我追踪到 SOLRs schema.xml 的变化。为动态日期字段添加了一个新的通配符字段:

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

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

删除此通配符字段并切换到特定字段定义对我有用。在这种情况下,日期字段值没有被索引,但 EXIF 数据的其余部分被索引。

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

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

于 2017-10-12T11:48:44.607 回答