Troubleshoot Advanced Search - BloomReach Experience - Open Source CMS
07-01-2019

Troubleshoot Advanced Search

This Bloomreach Experience Manager feature requires a standard or premium license. Please contact BloomReach for more information.

Incorrect results when searching for documents limited by publication date

Your search results show incorrect data in the 'Published' column if you select a date value in the 'Publication Date; To' filter.

This behaviour has been observed in implementations that were upgraded from Bloomreach Experience Manager 7.8 to Bloomreach Experience Manager 10.

The issue is caused by a change in the document model used to store content in the repository. In Bloomreach Experience Manager 10 the hippostdpubwf:publicationDate property is never stored on draft and unpublished document variants. Document created and published before the upgrade to Bloomreach Experience Manager may have a hippostdpubwf:publicationDate stored on their draft or unpublished variant which is not updated anymore after the upgrade to Bloomreach Experience Manager 10 and as a result becomes outdated. This outdated publication date may be displayed in the search results.

The issue can be fixed by removing all hippostdpubwf:publicationDate properties from draft and unpublished document variants using below Updater Script.

Query:

/jcr:root/content/documents//*[(@hippostd:state='draft' or @hippostd:state='unpublished') and @hippostdpubwf:publicationDate]

Groovy script:

package org.onehippo.cms.updater

import org.onehippo.cms.updater.BaseNodeUpdater

import javax.jcr.Node
import javax.jcr.PropertyType
import javax.jcr.PathNotFoundException
import javax.jcr.RepositoryException

/**
 * Adds default logo type property to cover documents that does not have one.
 */
class RemovePublicationDatePropertyFromUnpublishedAndDraft extends BaseNodeUpdater {

  public static final String PUBLICATION_DATE = "hippostdpubwf:publicationDate"

  boolean doUpdate(Node node) {
    log.debug("Updating {}", node.getPath())
    try {
      if (node.hasProperty(PUBLICATION_DATE)) {
        node.getProperty(PUBLICATION_DATE).remove()
        return true
      }
    } catch (RepositoryException e) {
      log.debug("An error occurred {}", e.getMessage())
      return false
    }
  }
}
Did you find this page helpful?
How could this documentation serve you better?
On this page
    Did you find this page helpful?
    How could this documentation serve you better?