Interface SearchSession

All Superinterfaces:
AutoCloseable, SearchScopeProvider

@Incubating public interface SearchSession extends SearchScopeProvider, AutoCloseable
A Hibernate Search session, bound to a particular tenant identifier (if any), and with its own overridden settings regarding commits, refresh, etc.

Provides entry points to Hibernate Search operations that involve indexing and searching.

  • Method Details

    • close

      void close()
      Execute any pending work in the indexing plan and release any resource held by this session.
      Specified by:
      close in interface AutoCloseable
    • isOpen

      boolean isOpen()
      Determine whether the search session is open.
      Returns:
      true until the search session has been closed
    • massIndexer

      default MassIndexer massIndexer()
      Creates a MassIndexer to rebuild the indexes of all indexed entity types.

      MassIndexer instances cannot be reused.

      Returns:
      The created mass indexer.
    • massIndexer

      default MassIndexer massIndexer(Class<?>... classes)
      Creates a MassIndexer to rebuild the indexes of indexed entity classes among the given classes and their subtypes.

      MassIndexer instances cannot be reused.

      Parameters:
      classes - An array of classes. Each must be an indexed entity type or a supertype of such type.
      Returns:
      The created mass indexer.
    • massIndexer

      MassIndexer massIndexer(Collection<? extends Class<?>> classes)
      Creates a MassIndexer to rebuild the indexes mapped to the given types, or to any of their sub-types.
      Parameters:
      classes - A collection of classes. Each must be an indexed entity type or a supertype of such type.
      Returns:
      A MassIndexer.
    • search

      default <T> SearchQuerySelectStep<?,EntityReference,T,?,?,?> search(Class<T> clazz)
      Initiate the building of a search query.

      The query will target the indexes mapped to indexed entity types among the given class and its subtypes.

      Type Parameters:
      T - An indexed type, or a supertype of all indexed types that will be targeted by the search query.
      Parameters:
      clazz - A class that must be an indexed entity type or a supertype of such type.
      Returns:
      The initial step of a DSL where the search query can be defined.
      See Also:
    • search

      <T> SearchQuerySelectStep<?,EntityReference,T,?,?,?> search(Collection<? extends Class<? extends T>> classes)
      Initiate the building of a search query.

      The query will target the indexes mapped to indexed entity types among the given classes and their subtypes.

      Type Parameters:
      T - A supertype of all indexed types that will be targeted by the search query.
      Parameters:
      classes - A collection of classes. Each must be an indexed entity type or a supertype of such type.
      Returns:
      The initial step of a DSL where the search query can be defined.
      See Also:
    • search

      <T> SearchQuerySelectStep<?,EntityReference,T,?,?,?> search(SearchScope<T> scope)
      Initiate the building of a search query.

      The query will target the indexes in the given scope.

      Type Parameters:
      T - A supertype of all types in the given scope.
      Parameters:
      scope - A scope representing all indexed types that will be targeted by the search query.
      Returns:
      The initial step of a DSL where the search query can be defined.
      See Also:
    • schemaManager

      default SearchSchemaManager schemaManager()
      Create a SearchSchemaManager for all indexes.
      Returns:
      A SearchSchemaManager.
    • schemaManager

      default SearchSchemaManager schemaManager(Class<?>... classes)
      Create a SearchSchemaManager for the indexes mapped to indexed entity types among the given classes and their subtypes.
      Parameters:
      classes - An array of classes. Each must be an indexed entity type or a supertype of such type.
      Returns:
      A SearchSchemaManager.
    • schemaManager

      SearchSchemaManager schemaManager(Collection<? extends Class<?>> classes)
      Create a SearchSchemaManager for the indexes mapped to indexed entity types among the given classes and their subtypes.
      Parameters:
      classes - A collection of classes. Each must be an indexed entity type or a supertype of such type.
      Returns:
      A SearchSchemaManager.
    • workspace

      default SearchWorkspace workspace()
      Create a SearchWorkspace for the indexes mapped to all indexed types.
      Returns:
      A SearchWorkspace.
    • workspace

      default SearchWorkspace workspace(Class<?>... classes)
      Create a SearchWorkspace for the indexes mapped to indexed entity types among the given classes and their subtypes.
      Parameters:
      classes - An array of classes. Each must be an indexed entity type or a supertype of such type.
      Returns:
      A SearchWorkspace.
    • workspace

      SearchWorkspace workspace(Collection<? extends Class<?>> classes)
      Create a SearchWorkspace for the indexes mapped to indexed entity types among the given classes and their subtypes.
      Parameters:
      classes - A collection of classes. Each must be an indexed entity type or a supertype of such type.
      Returns:
      A SearchWorkspace.
    • indexingPlan

      SearchIndexingPlan indexingPlan()
      Returns:
      The indexing plan for this session. It will be executed upon closing this session.
    • indexer

      SearchIndexer indexer()
      Returns:
      The indexer for this session.
    • tenantIdentifier

      @Deprecated(forRemoval=true) String tenantIdentifier()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Returns:
      The tenant identifier for this session.
    • tenantIdentifierValue

      Object tenantIdentifierValue()
      Returns:
      The tenant identifier for this session.
    • indexingPlanSynchronizationStrategy

      void indexingPlanSynchronizationStrategy(IndexingPlanSynchronizationStrategy synchronizationStrategy)
      Set the IndexingPlanSynchronizationStrategy to use for this session.

      Behavior is undefined if called while entity changes are pending: be sure to call this only just after creating a session.

      Parameters:
      synchronizationStrategy - The synchronization strategy to use
      See Also: