Interface SearchSession


public interface SearchSession
A Hibernate Search session, bound to a Hibernate ORM Session/EntityManager.

Provides entry points to Hibernate Search operations that involve indexing and searching, and that make use of the ORM session.

  • Method Details

    • search

      Initiate the building of a search query.

      The query will target the indexes mapped to the given type, or to any of its sub-types.

      Type Parameters:
      T - An indexed type, or a supertype of all indexed types that will be targeted by the search query.
      Parameters:
      type - An indexed type, or a supertype of 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:
    • search

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

      The query will target the indexes mapped to the given types, or to any of their sub-types.

      Type Parameters:
      T - A supertype of all indexed types that will be targeted by the search query.
      Parameters:
      types - A collection of indexed types, or supertypes of 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:
    • search

      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<?>... types)
      Create a SearchSchemaManager for the indexes mapped to the given type, or to any of its sub-types.
      Parameters:
      types - One or more indexed types, or supertypes of all indexed types that will be targeted by the schema manager.
      Returns:
      A SearchSchemaManager.
    • schemaManager

      SearchSchemaManager schemaManager(Collection<? extends Class<?>> types)
      Create a SearchSchemaManager for the indexes mapped to the given types, or to any of their sub-types.
      Parameters:
      types - A collection of indexed types, or supertypes of all indexed types that will be targeted by the schema manager.
      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<?>... types)
      Create a SearchWorkspace for the indexes mapped to the given type, or to any of its sub-types.
      Parameters:
      types - One or more indexed types, or supertypes of all indexed types that will be targeted by the workspace.
      Returns:
      A SearchWorkspace.
    • workspace

      SearchWorkspace workspace(Collection<? extends Class<?>> types)
      Create a SearchWorkspace for the indexes mapped to the given types, or to any of their sub-types.
      Parameters:
      types - A collection of indexed types, or supertypes of all indexed types that will be targeted by the workspace.
      Returns:
      A SearchWorkspace.
    • 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<?>... types)
      Creates a MassIndexer to rebuild the indexes mapped to the given types, or to any of their sub-types.

      MassIndexer instances cannot be reused.

      Parameters:
      types - An array of indexed types, or supertypes of all indexed types that will be targeted by the workspace.
      Returns:
      The created mass indexer.
    • massIndexer

      MassIndexer massIndexer(Collection<? extends Class<?>> types)
      Creates a MassIndexer to rebuild the indexes mapped to the given types, or to any of their sub-types.
      Parameters:
      types - A collection of indexed types, or supertypes of all indexed types that will be targeted by the workspace.
      Returns:
      A SearchWorkspace.
    • scope

      default <T> SearchScope<T> scope(Class<T> type)
      Create a SearchScope limited to the given type.
      Type Parameters:
      T - A type to include in the scope.
      Parameters:
      type - A type to include in the scope.
      Returns:
      The created scope.
      See Also:
    • scope

      <T> SearchScope<T> scope(Collection<? extends Class<? extends T>> types)
      Create a SearchScope limited to the given types.
      Type Parameters:
      T - A supertype of all types to include in the scope.
      Parameters:
      types - A collection of types to include in the scope.
      Returns:
      The created scope.
      See Also:
    • scope

      default <T> SearchScope<T> scope(Class<T> expectedSuperType, String entityName)
      Create a SearchScope limited to entity types referenced by their name.
      Type Parameters:
      T - A supertype of all entity types to include in the scope.
      Parameters:
      expectedSuperType - A supertype of all entity types to include in the scope.
      entityName - An entity name. See Entity.name().
      Returns:
      The created scope.
      See Also:
    • scope

      <T> SearchScope<T> scope(Class<T> expectedSuperType, Collection<String> entityNames)
      Create a SearchScope limited to entity types referenced by their name.
      Type Parameters:
      T - A supertype of all entity types to include in the scope.
      Parameters:
      expectedSuperType - A supertype of all entity types to include in the scope.
      entityNames - A collection of entity names. See Entity.name().
      Returns:
      The created scope.
      See Also:
    • indexingPlan

      SearchIndexingPlan indexingPlan()
      Returns:
      The indexing plan for this session, allowing to explicitly index entities or delete them from the index, or to process entity changes or even write to the indexes before the transaction is committed.
    • toEntityManager

      javax.persistence.EntityManager toEntityManager()
      Returns:
      The underlying EntityManager used by this SearchSession.
    • toOrmSession

      org.hibernate.Session toOrmSession()
      Returns:
      The underlying Session used by this SearchSession.
    • automaticIndexingSynchronizationStrategy

      @Deprecated void automaticIndexingSynchronizationStrategy(AutomaticIndexingSynchronizationStrategy synchronizationStrategy)
      Set the AutomaticIndexingSynchronizationStrategy 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, or just after committing a transaction.

      Parameters:
      synchronizationStrategy - The synchronization strategy to use
      See Also:
    • 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, or just after committing a transaction.

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

      @Incubating void indexingPlanFilter(SearchIndexingPlanFilter filter)
      Set a filter configuration and define which types must be included/excluded when indexed within indexing plans of the current session (either automatically or manually).

      This does not affect indexing that does not rely on indexing plans, like the mass indexer.

      If a type is not explicitly included/excluded directly or through an included/excluded supertype, the decision will be made by an application filter, which defaults to including all types.

      Parameters:
      filter - The filter that includes/excludes types when indexed.