Interface PojoMassIndexer

  • All Known Implementing Classes:
    PojoDefaultMassIndexer

    public interface PojoMassIndexer
    A MassIndexer is useful to rebuild the indexes from the data contained in the database. This process is expensive: all indexed entities and their indexedEmbedded properties are scrolled from database.
    Author:
    Sanne Grinovero
    • Method Detail

      • typesToIndexInParallel

        PojoMassIndexer typesToIndexInParallel​(int threadsToIndexObjects)
        Sets the number of entity types to be indexed in parallel.

        Defaults to 1.

        Parameters:
        threadsToIndexObjects - number of entity types to be indexed in parallel
        Returns:
        this for method chaining
      • threadsToLoadObjects

        PojoMassIndexer threadsToLoadObjects​(int numberOfThreads)
        Sets the number of threads to be used to load the root entities.
        Parameters:
        numberOfThreads - the number of threads
        Returns:
        this for method chaining
      • mergeSegmentsOnFinish

        PojoMassIndexer mergeSegmentsOnFinish​(boolean enable)
        Merges each index into a single segment after indexing.

        Defaults to false.

        Parameters:
        enable - true to enable this operation, false to disable it.
        Returns:
        this for method chaining
      • mergeSegmentsAfterPurge

        PojoMassIndexer mergeSegmentsAfterPurge​(boolean enable)
        Merges each index into a single segment after the initial index purge, just before indexing.

        Defaults to true.

        This setting has no effect if purgeAllOnStart is set to false.

        Parameters:
        enable - true to enable this operation, false to disable it.
        Returns:
        this for method chaining
      • dropAndCreateSchemaOnStart

        PojoMassIndexer dropAndCreateSchemaOnStart​(boolean dropAndCreateSchema)
        Drops the indexes and their schema (if they exist) and re-creates them before indexing.

        Indexes will be unavailable for a short time during the dropping and re-creation, so this should only be used when failures of concurrent operations on the indexes (indexing caused by entity changes, ...) are acceptable.

        This should be used when the existing schema is known to be obsolete, for example when the Hibernate Search mapping changed and some fields now have a different type, a different analyzer, new capabilities (projectable, ...), etc.

        This may also be used when the schema is up-to-date, since it can be faster than a purge on large indexes.

        Defaults to false.

        Parameters:
        dropAndCreateSchema - if true the indexes and their schema will be dropped then re-created before starting the indexing
        Returns:
        this for method chaining
      • purgeAllOnStart

        PojoMassIndexer purgeAllOnStart​(boolean purgeAll)
        Removes all entities from the indexes before indexing.

        Set this to false only if you know there are no entities in the indexes: otherwise search results may be duplicated.

        Default value depends on dropAndCreateSchemaOnStart(boolean). Defaults to false if the mass indexer is configured to drop and create the schema on start, to true otherwise.

        Parameters:
        purgeAll - if true all entities will be removed from the indexes before starting the indexing
        Returns:
        this for method chaining
      • startAndWait

        void startAndWait()
                   throws InterruptedException
        Starts the indexing process, and then block until it's finished.

        May only be called once.

        Throws:
        InterruptedException - if the current thread is interrupted while waiting.
      • failureFloodingThreshold

        @Incubating
        PojoMassIndexer failureFloodingThreshold​(long threshold)
        Sets the threshold for failures that will be reported and sent to MassIndexingFailureHandler per indexed type. Any failures exceeding this number will be ignored. A count of such ignored failures together with the operation they belong to will be reported to the failure handler upon the completion of indexing process.
        Parameters:
        threshold - The number of failures during one mass indexing beyond which the failure handler will no longer be notified. This threshold is reached separately for each indexed type. Overrides the threshold defined by the failure handler itself.

        Defaults to 100 with the default failure handler.

        Returns:
        this for method chaining