【发布时间】:2012-04-11 18:07:41
【问题描述】:
我正在尝试使用 Solr 的 DataImportHandler 为 Oracle DB 中的一些文档编制索引,除了将 Oracle 日期列正确读取到我的文档中之外,一切正常。
我的 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 附带一个transformer for dates,但我并不完全清楚它应该如何工作。我也试过做
<field column="RELEASE_DATE" name="release_date" dateTimeFormat="yyyy-MM-dd'T'hh:mm:ss'Z'" />
在 DIH 中,但这似乎并没有改变任何东西。
【问题讨论】:
-
Oracle中字段的类型是什么?
-
Oracle中字段的数据类型是Date。
-
nls_date_format 设置为什么?另外,如果你只做'select sysdate from dual',你会得到什么?