我正在尝试使用 Solr 的 DataImportHandler 来索引 Oracle DB 中的一些文档,除了将 Oracle Date 列正确读取到我的文档中之外,一切正常。
我将 Solr 架构中的字段定义为
<field name="release_date" type="date" indexed="true" stored="true" multiValued="false"/>
我首先尝试在我的 DataImportHandler 中只对日期列执行一个基本的选择语句,但是所有日期的索引都使用了不正确的时间值。例如,数据库中的日期为 2004 年 1 月 12 日 09:28 AM (EST) 被索引为:
<date name="release_date">2004-01-12T05:00:00Z</date>
所有日期值都有正确的日期,但它们都将 T05:00:00Z 作为时间。对于正在发生的事情,我最好的猜测是它正在从数据库中读取时间作为午夜并将其转换为 UTC。如果是这种情况,我希望正确的值可以读取 T14:28:00Z。
为什么它没有拾取 DB 列的时间部分?我知道 DIH 附带了一个 日期转换器,但我并不完全清楚它应该如何工作。我也试过做
<field column="RELEASE_DATE" name="release_date" dateTimeFormat="yyyy-MM-dd'T'hh:mm:ss'Z'" />
在 DIH 中,但这似乎并没有改变任何东西。