Interface IndexShardingStrategy

All Known Implementing Classes:
IdHashShardingStrategy, NotShardedStrategy

public interface IndexShardingStrategy
Defines how a given virtual index shards data into different DirectoryProviders
  • Method Details

    • initialize

      void initialize(Properties properties, DirectoryProvider<?>[] providers)
      provides access to sharding properties (under the suffix sharding_strategy) and provide access to all the DirectoryProviders for a given index
    • getDirectoryProvidersForAllShards

      DirectoryProvider<?>[] getDirectoryProvidersForAllShards()
      Ask for all shards (eg to query or optimize)
    • getDirectoryProviderForAddition

      DirectoryProvider<?> getDirectoryProviderForAddition(Class<?> entity, Serializable id, String idInString, Document document)
      return the DirectoryProvider where the given entity will be indexed
    • getDirectoryProvidersForDeletion

      DirectoryProvider<?>[] getDirectoryProvidersForDeletion(Class<?> entity, Serializable id, String idInString)
      return the DirectoryProvider(s) where the given entity is stored and where the deletion operation needs to be applied id and idInString can be null. If null, all the directory providers containing entity types should be returned
    • getDirectoryProvidersForQuery

      DirectoryProvider<?>[] getDirectoryProvidersForQuery(FullTextFilterImplementor[] fullTextFilters)
      return the set of DirectoryProvider(s) where the entities matching the filters are stored this optional optimization allows queries to hit a subset of all shards, which may be useful for some datasets if this optimization is not needed, return getDirectoryProvidersForAllShards() fullTextFilters can be empty if no filter is applied