You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by so...@apache.org on 2020/10/24 12:45:45 UTC

[lucene-solr] branch master updated: Fix random TestVectorValues failures by use of forceMerge (and getOnlyLeafReader)

This is an automated email from the ASF dual-hosted git repository.

sokolov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git


The following commit(s) were added to refs/heads/master by this push:
     new 56eac7c  Fix random TestVectorValues failures by use of forceMerge (and getOnlyLeafReader)
56eac7c is described below

commit 56eac7c435c31abd8fce090e96e4bf09b6d1cad6
Author: Michael Sokolov <so...@amazon.com>
AuthorDate: Sat Oct 24 08:44:33 2020 -0400

    Fix random TestVectorValues failures by use of forceMerge (and getOnlyLeafReader)
---
 .../org/apache/lucene/index/TestVectorValues.java  | 28 ++++++++++++----------
 1 file changed, 16 insertions(+), 12 deletions(-)

diff --git a/lucene/core/src/test/org/apache/lucene/index/TestVectorValues.java b/lucene/core/src/test/org/apache/lucene/index/TestVectorValues.java
index fe280c0..6e54b88 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestVectorValues.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestVectorValues.java
@@ -174,9 +174,10 @@ public class TestVectorValues extends LuceneTestCase {
         w.addDocument(doc);
       }
       try (IndexWriter w2 = new IndexWriter(dir2, createIndexWriterConfig())) {
-        w2.addIndexes(new Directory[]{dir});
+        w2.addIndexes(dir);
+        w2.forceMerge(1);
         try (IndexReader reader = w2.getReader()) {
-          LeafReader r = reader.leaves().get(0).reader();
+          LeafReader r = getOnlyLeafReader(reader);
           VectorValues vectorValues = r.getVectorValues(fieldName);
           assertEquals(0, vectorValues.nextDoc());
           assertEquals(0, vectorValues.vectorValue()[0], 0);
@@ -197,11 +198,12 @@ public class TestVectorValues extends LuceneTestCase {
       doc.add(new VectorField(fieldName, new float[4], VectorValues.SearchStrategy.DOT_PRODUCT_HNSW));
       try (IndexWriter w2 = new IndexWriter(dir2, createIndexWriterConfig())) {
         w2.addDocument(doc);
-        w2.addIndexes(new Directory[]{dir});
+        w2.addIndexes(dir);
+        w2.forceMerge(1);
         try (IndexReader reader = w2.getReader()) {
-          LeafReader r = reader.leaves().get(0).reader();
+          LeafReader r = getOnlyLeafReader(reader);
           VectorValues vectorValues = r.getVectorValues(fieldName);
-          assertEquals(0, vectorValues.nextDoc());
+          assertNotEquals(NO_MORE_DOCS, vectorValues.nextDoc());
           assertEquals(0, vectorValues.vectorValue()[0], 0);
           assertEquals(NO_MORE_DOCS, vectorValues.nextDoc());
         }
@@ -222,10 +224,10 @@ public class TestVectorValues extends LuceneTestCase {
       try (IndexWriter w2 = new IndexWriter(dir2, createIndexWriterConfig())) {
         vector[0] = 1;
         w2.addDocument(doc);
-        w2.addIndexes(new Directory[]{dir});
+        w2.addIndexes(dir);
         w2.forceMerge(1);
         try (IndexReader reader = w2.getReader()) {
-          LeafReader r = reader.leaves().get(0).reader();
+          LeafReader r = getOnlyLeafReader(reader);
           VectorValues vectorValues = r.getVectorValues(fieldName);
           assertEquals(0, vectorValues.nextDoc());
           // The merge order is randomized, we might get 0 first, or 1
@@ -460,12 +462,12 @@ public class TestVectorValues extends LuceneTestCase {
       w.commit();
 
       try (DirectoryReader r = w.getReader()) {
-        assertNotNull(r.leaves().get(0).reader().getVectorValues("v"));
+        assertNotNull(getOnlyLeafReader(r).getVectorValues("v"));
       }
       w.deleteDocuments(new Term("id", "0"));
       w.forceMerge(1);
       try (DirectoryReader r = w.getReader()) {
-        assertNull(r.leaves().get(0).reader().getVectorValues("v"));
+        assertNull(getOnlyLeafReader(r).getVectorValues("v"));
       }
     }
   }
@@ -552,8 +554,9 @@ public class TestVectorValues extends LuceneTestCase {
       Document doc3 = new Document();
       doc3.add(new VectorField(fieldName, v, VectorValues.SearchStrategy.EUCLIDEAN_HNSW));
       iw.addDocument(doc3);
+      iw.forceMerge(1);
       try (IndexReader reader = iw.getReader()) {
-        LeafReader r = reader.leaves().get(0).reader();
+        LeafReader r = getOnlyLeafReader(reader);
         VectorValues vectorValues = r.getVectorValues(fieldName);
         vectorValues.nextDoc();
         assertEquals(1, vectorValues.vectorValue()[0], 0);
@@ -575,8 +578,9 @@ public class TestVectorValues extends LuceneTestCase {
       add(iw, fieldName, 4, 4, new float[]{4});
       add(iw, fieldName, 3, 3, null);
       add(iw, fieldName, 2, 2, new float[]{2});
+      iw.forceMerge(1);
       try (IndexReader reader = iw.getReader()) {
-        LeafReader leaf = reader.leaves().get(0).reader();
+        LeafReader leaf = getOnlyLeafReader(reader);
 
         VectorValues vectorValues = leaf.getVectorValues(fieldName);
         assertEquals(1, vectorValues.dimension());
@@ -714,7 +718,7 @@ public class TestVectorValues extends LuceneTestCase {
     }
   }
 
-  public void testSearchStrategyIdentifiers() throws Exception {
+  public void testSearchStrategyIdentifiers() {
     // make sure we don't accidentally mess up search strategy identifiers by re-ordering their enumerators
     assertEquals(0, VectorValues.SearchStrategy.NONE.ordinal());
     assertEquals(1, VectorValues.SearchStrategy.EUCLIDEAN_HNSW.ordinal());