Java中的Apache Solr日期字段转换错误

问题描述

我对Solr日期格式有疑问。在jar文件中,以下行会产生转换错误

**cannot cast 'java.util.ArrayList' to 'java.util.Date'**
Date date = (Date) list.get(0).getFieldValue(fieldName);

产生错误的行来自mycore-oai-2019.11.jar和MCROAISolrsearcher.java类,并且您知道我无法更改它。

solr中的日期列以以下格式保存:

 "modified":["2018-08-17T06:10:55Z"]

调试该行中的代码,我看到以下日期格式:

Common reasons for ads not showing

我无法理解该错误!我试图花几个小时来弄清楚,但是什么也没有。时区是问题吗?字段映射是否有问题?请任何建议/帮助会使我安全!

提前谢谢!

解决方法

Solr中的字段是一个多值字段-代码期望它是单值的。多值字段返回一个列表(即您正在查看的数组列表),而单值字段直接返回该字段(即“日期”字段)。

更改架构(删除字段的multiValued="true"或显式设置multiValued="false")并重新编制索引。

默认情况下,在无模式模式下,所有字段都是多值的,因此这通常是出现此原因的原因-您尚未显式配置模式(在生产使用中应进行配置)。