Hi,
I have a similar problem. I try to change the timezone for the last_index_time
by setting
<propertyWriter dateFormat="yyyy-MM-dd HH:mm:ss"
type="SimplePropertiesWriter" locale="en_US" />
in the <dataConfig> section of my data-config.xml file.
But when doing this I always get a NullPointerException on Delta Import:
2017-09-15 14:04:00.825 INFO (Thread-2938) [ x:mex_prd_dev1100-ap]
o.a.s.h.d.DataImporter Starting Delta Import
2017-09-15 14:04:00.827 ERROR (Thread-2938) [ x:mex_prd_dev1100-ap]
o.a.s.h.d.DataImporter Delta Import Failed
org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to
PropertyWriter implementation:SimplePropertiesWriter
at
org.apache.solr.handler.dataimport.DataImporter.createPropertyWriter(DataImporter.java:330)
at
org.apache.solr.handler.dataimport.DataImporter.doDeltaImport(DataImporter.java:439)
at
org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:476)
at
org.apache.solr.handler.dataimport.DataImporter.lambda$runAsync$0(DataImporter.java:457)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:598)
at
org.apache.solr.handler.dataimport.SimplePropertiesWriter.init(SimplePropertiesWriter.java:100)
at
org.apache.solr.handler.dataimport.DataImporter.createPropertyWriter(DataImporter.java:328)
... 4 more
Has anyone an idea what is wrong or missing?
Thanks,
Birgit
-----Original Message-----
From: Jamie Jackson [mailto:[email protected]]
Sent: Tuesday, September 19, 2017 3:42 AM
To: [email protected]
Subject: [bulk]: Dates and DataImportHandler
Hi folks,
My DB server is on America/Chicago time. Solr (on Docker) is running on UTC.
Dates coming from my (MariaDB) data source seem to get translated properly into
the Solr index without me doing anything special.
However when doing delta imports using last_index_time (
http://wiki.apache.org/solr/DataImportHandlerDeltaQueryViaFullImport ), I can't
seem to get the date, which Solr provides, to be understood by the DB as being
UTC (and translated back, accordingly). In other words, the DB thinks the Solr
UTC date is local, so it thinks the date is ahead by six hours.
'${dataimporter.request.clean}' != 'false'
or dt > '${dataimporter.last_index_time}'
I came up with this workaround, which seems to work:
'${dataimporter.request.clean}' != 'false'
/* ${user.timezone} is UTC, and the ${custom.dataimporter.datasource.tz}
property is set to America/Chicago */
or dt > CONVERT_TZ('${dataimporter.last_index_time}','${user.timezone}','${
custom.dataimporter.datasource.tz}')
However, isn't there a way for this translation to happen more naturally?
I thought maybe I could do something like this:
<propertyWriter
dateFormat="yyyy-MM-dd HH:mm:ssZ"
type="SimplePropertiesWriter"
/>
The above did set the property as expected (with a trailiing `+0000`), but that
didn't seem to help the DB understand/translate the date.
Thanks,
Jamie