Package org.apache.lucene.tests.index
Class BaseKnnVectorsFormatTestCase
java.lang.Object
org.junit.Assert
org.apache.lucene.tests.util.LuceneTestCase
org.apache.lucene.tests.index.BaseIndexFileFormatTestCase
org.apache.lucene.tests.index.BaseKnnVectorsFormatTestCase
Base class aiming at testing
vectors formats. To test a new format, all
you need is to register a new Codec which uses it and extend this class and override
BaseIndexFileFormatTestCase.getCodec().- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.lucene.tests.index.BaseIndexFileFormatTestCase
BaseIndexFileFormatTestCase.FileTrackingDirectoryWrapper, BaseIndexFileFormatTestCase.ReadBytesDirectoryWrapperNested classes/interfaces inherited from class org.apache.lucene.tests.util.LuceneTestCase
LuceneTestCase.AwaitsFix, LuceneTestCase.Concurrency, LuceneTestCase.Monster, LuceneTestCase.Nightly, LuceneTestCase.SuppressCodecs, LuceneTestCase.SuppressFileSystems, LuceneTestCase.SuppressFsync, LuceneTestCase.SuppressReproduceLine, LuceneTestCase.SuppressSysoutChecks, LuceneTestCase.SuppressTempFileChecks, LuceneTestCase.ThrowingConsumer<T>, LuceneTestCase.ThrowingRunnable, LuceneTestCase.Weekly -
Field Summary
Fields inherited from class org.apache.lucene.tests.util.LuceneTestCase
assertsAreEnabled, classRules, DEFAULT_LINE_DOCS_FILE, INFOSTREAM, JENKINS_LARGE_LINE_DOCS_FILE, LEAVE_TEMPORARY, MAYBE_CACHE_POLICY, RANDOM_MULTIPLIER, ruleChain, suiteFailureMarker, SYSPROP_AWAITSFIX, SYSPROP_FAILFAST, SYSPROP_MAXFAILURES, SYSPROP_MONSTER, SYSPROP_NIGHTLY, SYSPROP_WEEKLY, TEST_ASSERTS_ENABLED, TEST_AWAITSFIX, TEST_CODEC, TEST_DIRECTORY, TEST_DOCVALUESFORMAT, TEST_LINE_DOCS_FILE, TEST_MONSTER, TEST_NIGHTLY, TEST_POSTINGSFORMAT, TEST_THROTTLING, TEST_WEEKLY, VERBOSE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddRandomFields(Document doc) Add random fields to the provided document.voidinit()protected booleanstatic float[]randomNormalizedVector(int dim) protected VectorSimilarityFunctionstatic float[]randomVector(int dim) static byte[]randomVector8(int dim) protected VectorEncodingThis method is overrideable since old codec versions only supportVectorEncoding.FLOAT32.voidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidIndex random vectors, sometimes skipping documents, sometimes deleting a document, sometimes merging, sometimes sorting the index, and verify that the expected values can be read back consistently.voidIndex random vectors as bytes, sometimes skipping documents, sometimes deleting a document, sometimes merging, sometimes sorting the index, and verify that the expected values can be read back consistently.voidIndex random vectors, sometimes skipping documents, sometimes updating a document, sometimes merging, sometimes sorting the index, using an HNSW similarity function to also produce a graph, and verify that the expected values can be read back consistently.voidTests whetherKnnVectorsReader.search(java.lang.String, float[], org.apache.lucene.search.KnnCollector, org.apache.lucene.util.Bits)implementations obey the limit on the number of visited vectors.voidvoidvoidvoidvoidvoidvoidMethods inherited from class org.apache.lucene.tests.index.BaseIndexFileFormatTestCase
applyCreatedVersionMajor, excludedExtensionsFromByteCounts, getCodec, getCreatedVersionMajor, maybeWrapWithMergingReader, setUp, shouldTestMergeInstance, tearDown, testCheckIntegrityReadsAllBytes, testMergeStability, testMultiClose, testRandomExceptionsMethods inherited from class org.apache.lucene.tests.util.LuceneTestCase
addVirusChecker, assertDeletedDocsEquals, assertDocsAndPositionsEnumEquals, assertDocsEnumEquals, assertDocsSkippingEquals, assertDocValuesEquals, assertDocValuesEquals, assertDoubleUlpEquals, assertFieldInfosEquals, assertFloatUlpEquals, assertNormsEquals, assertPointsEquals, assertPositionsSkippingEquals, assertReaderEquals, assertReaderStatisticsEquals, assertStoredFieldEquals, assertStoredFieldsEquals, assertTermsEnumEquals, assertTermsEquals, assertTermsEquals, assertTermsStatisticsEquals, assertTermStatsEquals, assertTermVectorsEquals, asSet, assumeFalse, assumeNoException, assumeTrue, atLeast, atLeast, callStackContains, callStackContains, callStackContainsAnyOf, closeAfterSuite, closeAfterTest, collate, createTempDir, createTempDir, createTempFile, createTempFile, dumpArray, dumpIterator, ensureSaneIWCOnNightly, expectThrows, expectThrows, expectThrows, expectThrowsAnyOf, expectThrowsAnyOf, getDataInputStream, getDataPath, getJvmForkArguments, getOnlyLeafReader, getTestClass, getTestName, isTestThread, localeForLanguageTag, maybeChangeLiveIndexWriterConfig, maybeWrapReader, newAlcoholicMergePolicy, newAlcoholicMergePolicy, newBytesRef, newBytesRef, newBytesRef, newBytesRef, newBytesRef, newBytesRef, newDirectory, newDirectory, newDirectory, newDirectory, newDirectory, newField, newField, newFSDirectory, newFSDirectory, newIndexWriterConfig, newIndexWriterConfig, newIndexWriterConfig, newIOContext, newIOContext, newLogMergePolicy, newLogMergePolicy, newLogMergePolicy, newLogMergePolicy, newLogMergePolicy, newMaybeVirusCheckingDirectory, newMaybeVirusCheckingFSDirectory, newMergePolicy, newMergePolicy, newMergePolicy, newMockDirectory, newMockDirectory, newMockDirectory, newMockFSDirectory, newMockFSDirectory, newSearcher, newSearcher, newSearcher, newSearcher, newSearcher, newSnapshotIndexWriterConfig, newStringField, newStringField, newStringField, newStringField, newTextField, newTextField, newTieredMergePolicy, newTieredMergePolicy, overrideDefaultQueryCache, overrideTestDefaultQueryCache, random, randomLocale, randomTimeZone, randomVectorFormat, rarely, rarely, replaceMaxFailureRule, resetDefaultQueryCache, restoreCPUCoreCount, restoreIndexWriterMaxDocs, runWithRestrictedPermissions, setIndexWriterMaxDocs, setupCPUCoreCount, setUpExecutorService, shutdownExecutorService, slowFileExists, usually, usually, wrapReaderMethods inherited from class org.junit.Assert
assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertThat, assertThat, assertThrows, assertThrows, assertTrue, assertTrue, fail, fail
-
Constructor Details
-
BaseKnnVectorsFormatTestCase
public BaseKnnVectorsFormatTestCase()
-
-
Method Details
-
init
public void init() -
addRandomFields
Description copied from class:BaseIndexFileFormatTestCaseAdd random fields to the provided document.- Specified by:
addRandomFieldsin classBaseIndexFileFormatTestCase
-
mergeIsStable
protected boolean mergeIsStable()- Overrides:
mergeIsStablein classBaseIndexFileFormatTestCase
-
testFieldConstructor
public void testFieldConstructor() -
testFieldConstructorExceptions
public void testFieldConstructorExceptions() -
testFieldSetValue
public void testFieldSetValue() -
testIllegalDimChangeTwoDocs
- Throws:
Exception
-
testIllegalSimilarityFunctionChange
- Throws:
Exception
-
testIllegalDimChangeTwoWriters
- Throws:
Exception
-
testMergingWithDifferentKnnFields
- Throws:
Exception
-
testMergingWithDifferentByteKnnFields
- Throws:
Exception
-
testWriterRamEstimate
- Throws:
Exception
-
testIllegalSimilarityFunctionChangeTwoWriters
- Throws:
Exception
-
testAddIndexesDirectory0
- Throws:
Exception
-
testAddIndexesDirectory1
- Throws:
Exception
-
testAddIndexesDirectory01
- Throws:
Exception
-
testIllegalDimChangeViaAddIndexesDirectory
- Throws:
Exception
-
testIllegalSimilarityFunctionChangeViaAddIndexesDirectory
- Throws:
Exception
-
testIllegalDimChangeViaAddIndexesCodecReader
- Throws:
Exception
-
testIllegalSimilarityFunctionChangeViaAddIndexesCodecReader
- Throws:
Exception
-
testIllegalDimChangeViaAddIndexesSlowCodecReader
- Throws:
Exception
-
testIllegalSimilarityFunctionChangeViaAddIndexesSlowCodecReader
- Throws:
Exception
-
testIllegalMultipleValues
- Throws:
Exception
-
testIllegalDimensionTooLarge
- Throws:
Exception
-
testIllegalEmptyVector
- Throws:
Exception
-
testDifferentCodecs1
- Throws:
Exception
-
testDifferentCodecs2
- Throws:
Exception
-
testInvalidKnnVectorFieldUsage
public void testInvalidKnnVectorFieldUsage() -
testDeleteAllVectorDocs
- Throws:
Exception
-
testKnnVectorFieldMissingFromOneSegment
- Throws:
Exception
-
testSparseVectors
- Throws:
Exception
-
testFloatVectorScorerIteration
- Throws:
Exception
-
testByteVectorScorerIteration
- Throws:
Exception
-
testEmptyFloatVectorData
- Throws:
Exception
-
testEmptyByteVectorData
- Throws:
Exception
-
randomSimilarity
-
randomVectorEncoding
This method is overrideable since old codec versions only supportVectorEncoding.FLOAT32. -
testIndexedValueNotAliased
- Throws:
Exception
-
testSortedIndex
- Throws:
Exception
-
testSortedIndexBytes
- Throws:
Exception
-
testIndexMultipleKnnVectorFields
- Throws:
Exception
-
testRandom
Index random vectors, sometimes skipping documents, sometimes deleting a document, sometimes merging, sometimes sorting the index, and verify that the expected values can be read back consistently.- Throws:
Exception
-
testRandomBytes
Index random vectors as bytes, sometimes skipping documents, sometimes deleting a document, sometimes merging, sometimes sorting the index, and verify that the expected values can be read back consistently.- Throws:
Exception
-
testSearchWithVisitedLimit
Tests whetherKnnVectorsReader.search(java.lang.String, float[], org.apache.lucene.search.KnnCollector, org.apache.lucene.util.Bits)implementations obey the limit on the number of visited vectors. This test is a best-effort attempt to capture the right behavior, and isn't meant to define a strict requirement on behavior.- Throws:
Exception
-
testRandomWithUpdatesAndGraph
Index random vectors, sometimes skipping documents, sometimes updating a document, sometimes merging, sometimes sorting the index, using an HNSW similarity function to also produce a graph, and verify that the expected values can be read back consistently.- Throws:
Exception
-
randomVector
public static float[] randomVector(int dim) -
randomNormalizedVector
public static float[] randomNormalizedVector(int dim) -
randomVector8
public static byte[] randomVector8(int dim) -
testCheckIndexIncludesVectors
- Throws:
Exception
-
testSimilarityFunctionIdentifiers
public void testSimilarityFunctionIdentifiers() -
testVectorEncodingOrdinals
public void testVectorEncodingOrdinals() -
testAdvance
- Throws:
Exception
-
testVectorValuesReportCorrectDocs
- Throws:
Exception
-
testMismatchedFields
- Throws:
Exception
-