Skip to content

Commit 4643620

Browse files
authored
Fix AbstractStringFieldDataTestCase tests to account for TotalHits lower bound (opensearch-project#4270)
Fixes tests to account for TotalHits uncertainty as of Lucene 9. Signed-off-by: Daniel Widdis <widdis@gmail.com>
1 parent ee26e01 commit 4643620

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

server/src/test/java/org/opensearch/index/fielddata/AbstractStringFieldDataTestCase.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
import org.apache.lucene.search.SortField;
5353
import org.apache.lucene.search.TermQuery;
5454
import org.apache.lucene.search.TopFieldDocs;
55+
import org.apache.lucene.search.TotalHits;
5556
import org.apache.lucene.search.join.QueryBitSetProducer;
5657
import org.apache.lucene.search.join.ScoreMode;
5758
import org.apache.lucene.search.join.ToParentBlockJoinQuery;
@@ -340,7 +341,13 @@ public void testSortMissing(boolean first, boolean reverse) throws IOException {
340341
randomBoolean() ? numDocs : randomIntBetween(10, numDocs),
341342
new Sort(sortField)
342343
);
343-
assertEquals(numDocs, topDocs.totalHits.value);
344+
// As of Lucene 9.0.0, totalHits may be a lower bound
345+
if (topDocs.totalHits.relation == TotalHits.Relation.EQUAL_TO) {
346+
assertEquals(numDocs, topDocs.totalHits.value);
347+
} else {
348+
assertTrue(1000 <= topDocs.totalHits.value);
349+
assertTrue(numDocs >= topDocs.totalHits.value);
350+
}
344351
BytesRef previousValue = first ? null : reverse ? UnicodeUtil.BIG_TERM : new BytesRef();
345352
for (int i = 0; i < topDocs.scoreDocs.length; ++i) {
346353
final String docValue = searcher.doc(topDocs.scoreDocs[i].doc).get("value");

0 commit comments

Comments
 (0)