Class VectorizationProvider

java.lang.Object
org.apache.lucene.internal.vectorization.VectorizationProvider
Direct Known Subclasses:
DefaultVectorizationProvider

public abstract class VectorizationProvider extends Object
A provider of vectorization implementations. Depending on the Java version and availability of vectorization modules in the Java runtime this class provides optimized implementations (using SIMD) of several algorithms used throughout Apache Lucene.
  • Field Details

    • TESTS_VECTOR_SIZE

      static final OptionalInt TESTS_VECTOR_SIZE
    • TESTS_FORCE_INTEGER_VECTORS

      static final boolean TESTS_FORCE_INTEGER_VECTORS
    • LOG

      private static final Logger LOG
    • VERSION_JDK8301190_FIXED

      private static final Runtime.Version VERSION_JDK8301190_FIXED
      The minimal version of Java that has the bugfix for JDK-8301190.
    • VALID_CALLERS

      private static final Set<String> VALID_CALLERS
  • Constructor Details

    • VectorizationProvider

      VectorizationProvider()
  • Method Details

    • getInstance

      public static VectorizationProvider getInstance()
      Returns the default instance of the provider matching vectorization possibilities of actual runtime.
      Throws:
      UnsupportedOperationException - if the singleton getter is not called from known Lucene classes.
    • getVectorUtilSupport

      public abstract VectorUtilSupport getVectorUtilSupport()
      Returns a singleton (stateless) VectorUtilSupport to support SIMD usage in VectorUtil.
    • lookup

      static VectorizationProvider lookup(boolean testMode)
    • lookupVectorModule

      private static Optional<Module> lookupVectorModule()
      Looks up the vector module from Lucene's ModuleLayer or the root layer (if unnamed).
    • isAffectedByJDK8301190

      private static boolean isAffectedByJDK8301190()
      Check if runtime is affected by JDK-8301190 (avoids assertion when default language is say "tr").
    • ensureCaller

      private static void ensureCaller()