diff --git a/rest-api-spec/src/main/resources/rest-api-spec/test/search/220_total_hits_object.yml b/rest-api-spec/src/main/resources/rest-api-spec/test/search/220_total_hits_object.yml index 8823fc8922b67..965d18844e3cc 100644 --- a/rest-api-spec/src/main/resources/rest-api-spec/test/search/220_total_hits_object.yml +++ b/rest-api-spec/src/main/resources/rest-api-spec/test/search/220_total_hits_object.yml @@ -56,7 +56,7 @@ setup: --- "hits.total as an object": - skip: - version: " - 6.99.99" + version: " - 7.99.99" reason: hits.total is rendered as an object in 7.0.0 - do: @@ -106,7 +106,7 @@ setup: - do: search: - size: 3 + size: 0 track_total_hits: 4 body: query: @@ -116,6 +116,18 @@ setup: - match: {hits.total.value: 4} - match: {hits.total.relation: gte} + - do: + search: + size: 0 + track_total_hits: 5 + body: + query: + match: + foo: bar + + - match: {hits.total.value: 5} + - match: {hits.total.relation: eq} + - do: catch: /\[rest_total_hits_as_int\] cannot be used if the tracking of total hits is not accurate, got 100/ search: diff --git a/server/src/main/java/org/elasticsearch/action/search/SearchPhaseController.java b/server/src/main/java/org/elasticsearch/action/search/SearchPhaseController.java index d370f60d98c0d..084cdaca2cc59 100644 --- a/server/src/main/java/org/elasticsearch/action/search/SearchPhaseController.java +++ b/server/src/main/java/org/elasticsearch/action/search/SearchPhaseController.java @@ -754,7 +754,7 @@ TotalHits getTotalHits() { assert totalHitsRelation == Relation.EQUAL_TO; return new TotalHits(totalHits, totalHitsRelation); } else { - if (totalHits < trackTotalHitsUpTo) { + if (totalHits <= trackTotalHitsUpTo) { return new TotalHits(totalHits, totalHitsRelation); } else { /*