Class SearchHitFactory

java.lang.Object
io.goobi.viewer.model.search.SearchHitFactory

public class SearchHitFactory extends Object
Factory class that constructs SearchHit objects from Solr documents, enriching them with metadata, thumbnails, child hits, and access permission information.
  • Constructor Details

    • SearchHitFactory

      public SearchHitFactory(Map<String,Set<String>> searchTerms, List<StringPair> sortFields, List<String> exportFields, int proximitySearchDistance, ThumbnailHandler thumbnailHandler, Locale locale)
      Parameters:
      searchTerms - map of Solr field names to sets of search terms for highlighting
      sortFields - list of sort fields to append as metadata
      exportFields - list of Solr field names to include in export metadata
      proximitySearchDistance - word distance for proximity/fuzzy search
      thumbnailHandler - handler used to build thumbnail URLs
      locale - locale for label translation and message resolution
  • Method Details

    • createSearchHit

      public SearchHit createSearchHit(org.apache.solr.common.SolrDocument doc, org.apache.solr.common.SolrDocument ownerDoc, String fulltext, HitType overrideType) throws PresentationException, IndexUnreachableException, DAOException
      createSearchHit.
      Parameters:
      doc - a SolrDocument object.
      ownerDoc - a SolrDocument object.
      fulltext - Optional fulltext (page docs only).
      overrideType - a HitType object.
      Returns:
      the SearchHit built from the given Solr document, with metadata and fulltext fragments
      Throws:
      PresentationException - if any.
      IndexUnreachableException - if any.
      DAOException
    • getHitType

      public HitType getHitType(HitType overrideType, StructElement se, String docType)
    • setAdditionalMetadataListType

      public SearchHitFactory setAdditionalMetadataListType(String additionalMetadataListType)
      Parameters:
      additionalMetadataListType - the key of the metadata list type to use for additional metadata on search hits
      Returns:
      this
    • setUser

      public SearchHitFactory setUser(User user)
      Parameters:
      user - the user for whom access conditions of the search hits should be calculated. If ommitted, the user is fetched from the jsfContext If one exists
      Returns:
      this
    • getAdditionalMetadataIgnoreFields

      public Set<String> getAdditionalMetadataIgnoreFields()
    • getAdditionalMetadataTranslateFields

      public Set<String> getAdditionalMetadataTranslateFields()
    • getAdditionalMetadataOneLineFields

      public Set<String> getAdditionalMetadataOneLineFields()
    • getAdditionalMetadataSnippetFields

      public Set<String> getAdditionalMetadataSnippetFields()
    • getAdditionalMetadataNoHighlightFields

      public Set<String> getAdditionalMetadataNoHighlightFields()