From b6814543499f17a43303fe82b185bf0789f6d387 Mon Sep 17 00:00:00 2001 From: Andriy Redko Date: Tue, 7 Apr 2026 14:38:53 -0400 Subject: [PATCH] Fix flaky org.opensearch.knn.index.engine.InternalKNNEngineTests.testJVectorEngineWithConstructionParameters (#369) Signed-off-by: Andriy Redko (cherry picked from commit dde51172e60c672f23941d8cc122784ff00b5fc9) --- .../index/engine/InternalKNNEngineTests.java | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/test/java/org/opensearch/knn/index/engine/InternalKNNEngineTests.java b/src/test/java/org/opensearch/knn/index/engine/InternalKNNEngineTests.java index 8efd8e2c..43ea16ab 100644 --- a/src/test/java/org/opensearch/knn/index/engine/InternalKNNEngineTests.java +++ b/src/test/java/org/opensearch/knn/index/engine/InternalKNNEngineTests.java @@ -561,22 +561,26 @@ public void testQuantizationWithOverQueryParameter() throws Exception { final RestClient restClient = getRestClient(); createKnnIndexMappingWithJVectorEngine(dimension, spaceType, VectorDataType.FLOAT); - // Choosing a batch size that will trigger quantization + // Disable refresh for the index + client().admin() + .indices() + .prepareUpdateSettings(INDEX_NAME) + .setSettings(Settings.builder().put(IndexSettings.INDEX_REFRESH_INTERVAL_SETTING.getKey(), -1)) + .get(); + + // Choosing a batch size that should definitely trigger quantization int batchSize = DEFAULT_MINIMUM_BATCH_SIZE_FOR_QUANTIZATION * 2; final float[][] vectors = TestUtils.generateRandomVectors(batchSize, dimension); final int totalDocs = vectors.length; - logger.info("Adding batch of vectors with size {} that is expected to trigger quantization", totalDocs); - CommonTestUtils.bulkAddKnnDocs(restClient, INDEX_NAME, FIELD_NAME, vectors, batchSize, false, 1000); - CommonTestUtils.flushIndex(restClient, INDEX_NAME); - - // Force merge to trigger quantization for all segments - logger.info("Force merging just in case quantization didn't happen because of segment fragmentation"); - CommonTestUtils.forceMergeKnnIndex(restClient, INDEX_NAME); - // Verify the total document count int expectedTotalDocs = vectors.length; + logger.info("Adding batch of vectors with size {} that is expected to trigger quantization", totalDocs); + CommonTestUtils.bulkAddKnnDocs(restClient, INDEX_NAME, FIELD_NAME, vectors, batchSize, false, batchSize); + flushAndRefresh(INDEX_NAME); + + // Verify the total document count (we expect 1 segment) assertEquals(expectedTotalDocs, CommonTestUtils.getDocCount(restClient, INDEX_NAME)); // Perform search and verify recall