Interface IFulltextSearchSvc

All Known Implementing Classes:
FulltextSearchSvcImpl

public interface IFulltextSearchSvc
  • Method Details

    • search

      <T extends ca.uhn.fhir.rest.api.server.storage.IResourcePersistentId> List<T> search(String theResourceName, SearchParameterMap theParams, ca.uhn.fhir.rest.api.server.RequestDetails theRequestDetails)
      Search the Lucene/Elastic index for pids using params supported in theParams, consuming entries from theParams when used to query.
      Parameters:
      theResourceName - the resource name to restrict the query.
      theParams - the full query - modified to return only params unused by the index.
      theRequestDetails - The request details
      Returns:
      the pid list for the matchign resources.
    • searchNotScrolled

      ISearchQueryExecutor searchNotScrolled(String theResourceName, SearchParameterMap theParams, Integer theMaxResultsToFetch, ca.uhn.fhir.rest.api.server.RequestDetails theRequestDetails)
      Query the index for a plain list (non-scrollable) iterator of results.
      Parameters:
      theResourceName - e.g. Patient
      theParams - The search query
      theMaxResultsToFetch - maximum results to fetch
      theRequestDetails - The request details
      Returns:
      Iterator of result PIDs
    • searchScrolled

      ISearchQueryExecutor searchScrolled(String theResourceName, SearchParameterMap theParams, ca.uhn.fhir.rest.api.server.RequestDetails theRequestDetails)
      Query the index for a complete iterator of ALL results. (scrollable search result).
      Parameters:
      theResourceName - e.g. Patient
      theParams - The search query
      theRequestDetails - The request details
      Returns:
      Iterator of result PIDs
    • tokenAutocompleteValueSetSearch

      org.hl7.fhir.instance.model.api.IBaseResource tokenAutocompleteValueSetSearch(ValueSetAutocompleteOptions theOptions)
      Autocomplete search for NIH $expand contextDirection=existing
      Parameters:
      theOptions - operation options
      Returns:
      a ValueSet with the search hits as the expansion.
    • everything

      <T extends ca.uhn.fhir.rest.api.server.storage.IResourcePersistentId> List<T> everything(String theResourceName, SearchParameterMap theParams, T theReferencingPid, ca.uhn.fhir.rest.api.server.RequestDetails theRequestDetails)
    • isDisabled

      boolean isDisabled()
    • extractLuceneIndexData

      ExtendedHSearchIndexData extractLuceneIndexData(org.hl7.fhir.instance.model.api.IBaseResource theResource, ResourceIndexedSearchParams theNewParams)
    • canUseHibernateSearch

      boolean canUseHibernateSearch(String theResourceType, SearchParameterMap theParameterMap)
      Returns true if the parameter map can be handled for hibernate search. We have to filter out any queries that might use search params we only know how to handle in JPA. - See ExtendedHSearchSearchBuilder.addAndConsumeAdvancedQueryClauses(ca.uhn.fhir.jpa.dao.search.ExtendedHSearchClauseBuilder, ca.uhn.fhir.jpa.model.search.ExtendedHSearchBuilderConsumeAdvancedQueryClausesParams)
    • reindex

      void reindex(ResourceTable theEntity)
      Re-publish the resource to the full-text index. - During update, hibernate search only republishes the entity if it has changed. During $reindex, we want to force the re-index.
      Parameters:
      theEntity - the fully populated ResourceTable entity
    • lastN

      List<ca.uhn.fhir.rest.api.server.storage.IResourcePersistentId> lastN(SearchParameterMap theParams, Integer theMaximumResults)
    • getResources

      List<org.hl7.fhir.instance.model.api.IBaseResource> getResources(Collection<Long> thePids)
      Returns inlined resource stored along with index mappings for matched identifiers
      Parameters:
      thePids - raw pids - we dont support versioned references
      Returns:
      Resources list or empty if nothing found
    • count

      long count(String theResourceName, SearchParameterMap theParams)
      Returns accurate hit count
    • searchForResources

      List<org.hl7.fhir.instance.model.api.IBaseResource> searchForResources(String theResourceType, SearchParameterMap theParams, ca.uhn.fhir.rest.api.server.RequestDetails theRequestDetails)
    • supportsAllOf

      boolean supportsAllOf(SearchParameterMap theParams)
    • deleteIndexedDocumentsByTypeAndId

      void deleteIndexedDocumentsByTypeAndId(Class theClazz, List<Object> theGivenIds)
      Given a resource type that is indexed by hibernate search, and a list of objects reprenting the IDs you wish to delete, this method will delete the resources from the Hibernate Search index. This is useful for situations where a deletion occurred outside a Hibernate ORM session, leaving dangling documents in the index.
      Parameters:
      theClazz - The class, which must be annotated with Indexed
      theGivenIds - The list of IDs for the given document type. Note that while this is a List, the type must match the type of the `@Id` field on the given class.
    • supportsAllSortTerms

      boolean supportsAllSortTerms(String theResourceName, SearchParameterMap theParams)
      Given a resource type and a SearchParameterMap, return true only if all sort terms are supported.
      Parameters:
      theResourceName - The resource type for the query.
      theParams - The SearchParameterMap being searched with.
      Returns:
      true if all sort terms are supported, false otherwise.