Solr DataImportHandler索引中的Oracle日期不正确

时间:2011-11-10 17:31:07

标签: oracle solr indexing timezone dataimporthandler

我使用Solr 3.4来索引DataImportHandler从oracle 10数据库中检索的字段。 “DATE”类型的Oracle字段具有以下值:2011-09-20。 “solr.TrieDateField”类型的Solr索引字段的值为2011-09-19T22:00:00Z。我的(oracle,solr,windows)时区是GMT + 1。我期望有solr索引字段值:2011-09-19T23:00:00Z。为什么不呢?

配置:

<dataConfig>
    <dataSource driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:***" user="" password="" />
    <document>
        <entity name="event" query="select start_date from event" >
        </entity>
    </document>
</dataConfig>

我使用的是ojdbc14版本11.2.0.2

Solr admin - &gt; java properties - &gt; user.timezone = Europe / Belgrade(GMT + 1)

经过研究,我找到了可能的原因:

select DBTIMEZONE, SESSIONTIMEZONE from dual;
1. +2:00 +01:00

solr是否使用dbtimezone而不是sessiontimezone?

我找到了答案:

SELECT FROM_TZ(timestamp '2011-08-20 00:00:00', 'CET') AT TIME ZONE 'GMT' from dual;
11/08/19 22:00:00,000000000 GMT
SELECT FROM_TZ(timestamp '2011-12-20 00:00:00', 'CET') AT TIME ZONE 'GMT' from dual;
11/12/19 23:00:00,000000000 GMT

第一个日期包括夏令时,第二个日期没有。很明显。

0 个答案:

没有答案