@ -2481,11 +2481,21 @@ public final class Switchboard extends serverSwitch {
boolean postprocessing = process_key_exist & & reference_index_exist & & minimum_ram_fullfilled & & minimum_load_fullfilled ;
if ( ! postprocessing ) log . info ( "postprocessing deactivated: constraints violated" ) ;
// Hack to prevent Solr problem on partial update if target document contains multivalued date field
// regardless if this field is part of the update it causes a org.apache.solr.common.SolrException: Invalid Date String Exception.
// 2015-09-12 Solr v5.2.1 & v5.3
// this hack switches partial update off (if multivalued datefield _dts exists, like: dates_in_content_dts startDates_dts endDates_dts)
boolean partialUpdate = getConfigBool ( "postprocessing.partialUpdate" , true ) ;
for ( String sf : index . fulltext ( ) . getDefaultConfiguration ( ) . keySet ( ) ) {
if ( sf . endsWith ( "_dts" ) ) {
partialUpdate = false ;
}
}
if ( allCrawlsFinished ) {
if ( postprocessing ) {
// run postprocessing on all profiles
ReferenceReportCache rrCache = index . getReferenceReportCache ( ) ;
proccount + = collection1Configuration . postprocessing ( index , rrCache , null , getConfigBool ( "postprocessing.partialUpdate" , true ) ) ;
proccount + = collection1Configuration . postprocessing ( index , rrCache , null , partialUpdate) ;
this . index . fulltext ( ) . commit ( true ) ; // without a commit the success is not visible in the monitoring
}
this . crawler . cleanProfiles ( this . crawler . getActiveProfiles ( ) ) ;
@ -2498,7 +2508,7 @@ public final class Switchboard extends serverSwitch {
if ( postprocessing ) {
// run postprocessing on these profiles
ReferenceReportCache rrCache = index . getReferenceReportCache ( ) ;
for ( String profileHash : deletionCandidates ) proccount + = collection1Configuration . postprocessing ( index , rrCache , profileHash , getConfigBool( "postprocessing. partialUpdate", true ) ) ;
for ( String profileHash : deletionCandidates ) proccount + = collection1Configuration . postprocessing ( index , rrCache , profileHash , partialUpdate) ;
this . index . fulltext ( ) . commit ( true ) ; // without a commit the success is not visible in the monitoring
}
this . crawler . cleanProfiles ( deletionCandidates ) ;