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.ReadBytesDirectoryWrapper
Nested classes/interfaces inherited from class org.apache.lucene.tests.util.LuceneTestCase
LuceneTestCase.AwaitsFix, LuceneTestCase.BadApple, 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_BADAPPLES, SYSPROP_FAILFAST, SYSPROP_MAXFAILURES, SYSPROP_MONSTER, SYSPROP_NIGHTLY, SYSPROP_WEEKLY, TEST_ASSERTS_ENABLED, TEST_AWAITSFIX, TEST_BADAPPLES, 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 void
addRandomFields
(Document doc) Add random fields to the provided document.void
init()
static float[]
randomNormalizedVector
(int dim) protected VectorSimilarityFunction
static float[]
randomVector
(int dim) static byte[]
randomVector8
(int dim) protected VectorEncoding
This method is overrideable since old codec versions only supportVectorEncoding.FLOAT32
.void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
void
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.void
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.void
Index random vectors, sometimes skipping documents, sometimes updating a document, sometimes merging, sometimes sorting the index, using an HNSW similarity function so as to also produce a graph, and verify that the expected values can be read back consistently.void
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.void
void
void
void
void
void
Methods inherited from class org.apache.lucene.tests.index.BaseIndexFileFormatTestCase
applyCreatedVersionMajor, excludedExtensionsFromByteCounts, getCodec, getCreatedVersionMajor, maybeWrapWithMergingReader, mergeIsStable, setUp, shouldTestMergeInstance, tearDown, testCheckIntegrityReadsAllBytes, testMergeStability, testMultiClose, testRandomExceptions
Methods inherited from class org.apache.lucene.tests.util.LuceneTestCase
addVirusChecker, assertDeletedDocsEquals, assertDocsAndPositionsEnumEquals, assertDocsEnumEquals, assertDocsSkippingEquals, assertDocValuesEquals, assertDocValuesEquals, assertFieldInfosEquals, assertNormsEquals, assertPointsEquals, assertPositionsSkippingEquals, assertReaderEquals, assertReaderStatisticsEquals, assertStoredFieldEquals, assertStoredFieldsEquals, assertTermsEnumEquals, assertTermsEquals, assertTermsEquals, assertTermsStatisticsEquals, assertTermStatsEquals, assertTermVectorsEquals, asSet, assumeFalse, assumeNoException, assumeTrue, assumeWorkingMMapOnWindows, 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, hasWorkingMMapOnWindows, 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, 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, wrapReader
Methods 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:BaseIndexFileFormatTestCase
Add random fields to the provided document.- Specified by:
addRandomFields
in classBaseIndexFileFormatTestCase
-
testFieldConstructor
public void testFieldConstructor() -
testFieldConstructorExceptions
public void testFieldConstructorExceptions() -
testFieldSetValue
public void testFieldSetValue() -
testIllegalDimChangeTwoDocs
- Throws:
Exception
-
testIllegalSimilarityFunctionChange
- Throws:
Exception
-
testIllegalDimChangeTwoWriters
- 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 so as 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
-