Skip to content

Commit f671a50

Browse files
committed
Add matrix stats test for MultiValueMode differences
Added SearchIT.testMatrixStatsMultiValueModeEffect to verify that different MultiValueMode settings (AVG vs MIN) produce different matrix stats results for multi-valued fields. Signed-off-by: Jinwoo Lee <jinlee1703@gmail.com>
1 parent cc1fd0c commit f671a50

File tree

1 file changed

+35
-0
lines changed
  • client/rest-high-level/src/test/java/org/opensearch/client

1 file changed

+35
-0
lines changed

client/rest-high-level/src/test/java/org/opensearch/client/SearchIT.java

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@
7878
import org.opensearch.script.mustache.MultiSearchTemplateResponse.Item;
7979
import org.opensearch.script.mustache.SearchTemplateRequest;
8080
import org.opensearch.script.mustache.SearchTemplateResponse;
81+
import org.opensearch.search.MultiValueMode;
8182
import org.opensearch.search.SearchHit;
8283
import org.opensearch.search.aggregations.AggregationBuilders;
8384
import org.opensearch.search.aggregations.BucketOrder;
@@ -1827,6 +1828,40 @@ public void testCountAllIndicesMatchQuery() throws IOException {
18271828
assertEquals(3, countResponse.getCount());
18281829
}
18291830

1831+
public void testMatrixStatsMultiValueModeEffect() throws IOException {
1832+
Request createIndex = new Request(HttpPut.METHOD_NAME, "/test_multi");
1833+
client().performRequest(createIndex);
1834+
1835+
Request doc = new Request(HttpPut.METHOD_NAME, "/test_multi/_doc/1");
1836+
doc.setJsonEntity("{ \"num\": [10, 30], \"num2\": [40, 60] }");
1837+
client().performRequest(doc);
1838+
1839+
client().performRequest(new Request(HttpPost.METHOD_NAME, "/test_multi/_refresh"));
1840+
1841+
SearchRequest avgRequest = new SearchRequest("test_multi");
1842+
avgRequest.source(
1843+
new SearchSourceBuilder().aggregation(
1844+
new MatrixStatsAggregationBuilder("agg").fields(Arrays.asList("num", "num2")).multiValueMode(MultiValueMode.AVG)
1845+
).size(0)
1846+
);
1847+
1848+
SearchRequest minRequest = new SearchRequest("test_multi");
1849+
minRequest.source(
1850+
new SearchSourceBuilder().aggregation(
1851+
new MatrixStatsAggregationBuilder("agg").fields(Arrays.asList("num", "num2")).multiValueMode(MultiValueMode.MIN)
1852+
).size(0)
1853+
);
1854+
1855+
SearchResponse avgResponse = execute(avgRequest, highLevelClient()::search, highLevelClient()::searchAsync);
1856+
SearchResponse minResponse = execute(minRequest, highLevelClient()::search, highLevelClient()::searchAsync);
1857+
1858+
MatrixStats avgStats = avgResponse.getAggregations().get("agg");
1859+
MatrixStats minStats = minResponse.getAggregations().get("agg");
1860+
1861+
assertNotEquals(avgStats.getMean("num"), minStats.getMean("num"));
1862+
assertNotEquals(avgStats.getMean("num2"), minStats.getMean("num2"));
1863+
}
1864+
18301865
private static void assertCountHeader(CountResponse countResponse) {
18311866
assertEquals(0, countResponse.getSkippedShards());
18321867
assertEquals(0, countResponse.getFailedShards());

0 commit comments

Comments
 (0)