diff --git a/src/main/java/com/searchscale/lucene/cuvs/benchmarks/BenchmarkConfiguration.java b/src/main/java/com/searchscale/lucene/cuvs/benchmarks/BenchmarkConfiguration.java index d1d3c80..37df685 100644 --- a/src/main/java/com/searchscale/lucene/cuvs/benchmarks/BenchmarkConfiguration.java +++ b/src/main/java/com/searchscale/lucene/cuvs/benchmarks/BenchmarkConfiguration.java @@ -27,6 +27,7 @@ public class BenchmarkConfiguration { public String hnswIndexDirPath; public boolean loadVectorsInMemory; public boolean skipIndexing; + public boolean forceMerge; // Lucene HNSW parameters public int hnswMaxConn; // 16 default (max 512) @@ -79,7 +80,8 @@ public String prettyString() { if (hnswIndexDirPath != null) sb.append("HNSW index directory path is: ").append(hnswIndexDirPath).append('\n'); sb.append("Load vectors in memory before indexing: ").append(loadVectorsInMemory).append('\n'); sb.append("Skip indexing (and use existing index for search): ").append(skipIndexing).append('\n'); - + sb.append("Do force merge while indexing documents: ").append(forceMerge).append('\n'); + sb.append("------- algo parameters ------\n"); if (isLucene()) { sb.append("hnswMaxConn: ").append(hnswMaxConn).append('\n'); diff --git a/src/main/java/com/searchscale/lucene/cuvs/benchmarks/LuceneCuvsBenchmarks.java b/src/main/java/com/searchscale/lucene/cuvs/benchmarks/LuceneCuvsBenchmarks.java index 072a112..ab6f478 100644 --- a/src/main/java/com/searchscale/lucene/cuvs/benchmarks/LuceneCuvsBenchmarks.java +++ b/src/main/java/com/searchscale/lucene/cuvs/benchmarks/LuceneCuvsBenchmarks.java @@ -441,6 +441,11 @@ private static void indexDocuments(IndexWriter writer, BenchmarkConfiguration co pool.shutdown(); pool.awaitTermination(Long.MAX_VALUE, TimeUnit.SECONDS); + if (config.forceMerge) { + log.info("Force merge is enabled."); + writer.forceMerge(1); + } + // log.info("Calling forceMerge(1)."); // writer.forceMerge(1); log.info("Calling commit.");