Импорт данных Apache Solr в Datastax Solr — DateFormat Transformer DIH

Я пытаюсь импортировать данные из Apache Solr в Datastax Solr, используя DIH. Я могу получить документ, но когда DIh пытается создать документ, я получаю следующую ошибку в полях даты:

org.apache.solr.common.SolrException: Invalid Date String:'Thu Jun 08 16:23:00 PDT 2017'
at org.apache.solr.schema.DateField.parseMath(DateField.java:182)
at com.datastax.bdp.search.solr.core.types.V1TypeMapper.formatToCassandraType(V1TypeMapper.java:166)
at com.datastax.bdp.search.solr.core.types.V2TypeMapper.formatToCassandraType(V2TypeMapper.java:101)
at com.datastax.bdp.search.solr.Cql3CassandraRowWriter.write(Cql3CassandraRowWriter.java:170)
at com.datastax.bdp.search.solr.handler.update.CassandraDirectUpdateHandler.addDoc(CassandraDirectUpdateHandler.java:161)
at org.apache.solr.update.processor.RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:69)
at org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:51)
at org.apache.solr.update.processor.DistributedUpdateProcessor.versionAdd(DistributedUpdateProcessor.java:595)
at org.apache.solr.update.processor.DistributedUpdateProcessor.processAdd(DistributedUpdateProcessor.java:435)
at org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:51)
at org.apache.solr.update.processor.AbstractDefaultValueUpdateProcessorFactory$DefaultValueUpdateProcessor.processAdd(AbstractDefaultValueUpdateProcessorFactory.java:94)
at org.apache.solr.handler.dataimport.SolrWriter.upload(SolrWriter.java:70)
at org.apache.solr.handler.dataimport.DataImportHandler$1.upload(DataImportHandler.java:235)
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:504)
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:408)
at org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:323)
at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:231)
at org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:411)
at org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:476)
at org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:457)

Я использую преобразователь DateFormat в своем DIH, но, похоже, это не влияет на него. Преобразователь DateFormat преобразует поля даты из Apache Solr в формат, указанный в dateTimeFormat, перед созданием документа для индексации в Datastax Solr.

<dataConfig>
  <document>
     <entity name="sep_byOrderNumber" processor="SolrEntityProcessor" query="OrderNumber:${dataimporter.request.OrderNumberList}" rows="${dataimporter.request.batchSize}" url="${dataimporter.request.urlSource}" transformer="DateFormatTransformer" loglevel="debug">
      <field column="OrderCreateDate" dateTimeFormat="yyyy-MM-dd'T'HH:mm:ss.SSSZ" />
     </entity>
  </document>
</dataconfig>

Может кто-нибудь помочь определить проблему?


person Preethi    schedule 31.03.2017    source источник


Ответы (1)


Измените свой dateTimeFormat на: EEE MMM dd HH:mm:ss z yyyy

Letter  Date or Time Component             Presentation Examples
y       Year                               Year         1996; 96
M       Month in year (context sensitive)  Month        July; Jul; 07
d       Day in month                       Number       10
E       Day name in week                   Text         Tuesday; Tue
H       Hour in day (0-23)                 Number       0
m       Minute in hour                     Number       30
s       Second in minute                   Number       55
z       Time zone                          Time zone    Pacific Standard Time; PST; GMT-08:00

Источник: http://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html

person Ashraful Islam    schedule 01.04.2017
comment
спасибо, но я все еще сталкиваюсь с той же ошибкой. Мой измененный файл dih-config.xml выглядит следующим образом: <dataConfig> <document> <entity name="sep_byOrderNumber" processor="SolrEntityProcessor" query="OrderNumber:${dataimporter.request.OrderNumberList}" rows="${dataimporter.request.batchSize}" url="${dataimporter.request.urlSource}" transformer="DateFormatTransformer" loglevel="debug"> <field column="OrderCreateDate" dateTimeFormat="EEE MMM dd HH:mm:ss z yyyy" /> </entity> </document> </dataconfig> - person Preethi; 03.04.2017
comment
Вы перезагрузили ядро ​​или перезапустили solr и попытались переиндексировать данные? - person Ashraful Islam; 03.04.2017
comment
Я развернул новую конфигурацию dih, перезагрузил ядро ​​и начал импорт dih. Он извлек документы, но не смог проиндексировать, обработать или пропустить из-за вышеуказанной ошибки. - person Preethi; 03.04.2017