diff --git a/java-client/src/main/java/org/opensearch/client/opensearch/_types/ScoreSort.java b/java-client/src/main/java/org/opensearch/client/opensearch/_types/ScoreSort.java index b432f1dfd..84a9e1564 100644 --- a/java-client/src/main/java/org/opensearch/client/opensearch/_types/ScoreSort.java +++ b/java-client/src/main/java/org/opensearch/client/opensearch/_types/ScoreSort.java @@ -141,7 +141,7 @@ public ScoreSort build() { protected static void setupScoreSortDeserializer(ObjectDeserializer op) { op.add(Builder::order, SortOrder._DESERIALIZER, "order"); - + op.shortcutProperty("order"); } } diff --git a/java-client/src/test/java/org/opensearch/client/opensearch/_types/SortOptionsTest.java b/java-client/src/test/java/org/opensearch/client/opensearch/_types/SortOptionsTest.java index c7bb05ac5..8243b8b16 100644 --- a/java-client/src/test/java/org/opensearch/client/opensearch/_types/SortOptionsTest.java +++ b/java-client/src/test/java/org/opensearch/client/opensearch/_types/SortOptionsTest.java @@ -33,4 +33,32 @@ public void testSortOptions() { assertEquals("entityId", fieldSort.field()); assertEquals(SortOrder.Asc, fieldSort.order()); } + + @Test + public void testScoreSortOrderShorthand() { + String jsonString = "[{\"_score\":\"asc\"}]"; + StringReader reader = new StringReader(jsonString); + JacksonJsonpMapper mapper = new JacksonJsonpMapper(); + JsonParser parser = mapper.jsonProvider().createParser(reader); + + List sortOptions = JsonpDeserializer.arrayDeserializer(SortOptions._DESERIALIZER).deserialize(parser, mapper); + assertEquals(1, sortOptions.size()); + assertEquals(SortOptions.Kind.Score, sortOptions.get(0)._kind()); + ScoreSort scoreSort = (ScoreSort) sortOptions.get(0)._get(); + assertEquals(SortOrder.Asc, scoreSort.order()); + } + + @Test + public void testDocSortOrderShorthand() { + String jsonString = "[{\"_doc\":\"desc\"}]"; + StringReader reader = new StringReader(jsonString); + JacksonJsonpMapper mapper = new JacksonJsonpMapper(); + JsonParser parser = mapper.jsonProvider().createParser(reader); + + List sortOptions = JsonpDeserializer.arrayDeserializer(SortOptions._DESERIALIZER).deserialize(parser, mapper); + assertEquals(1, sortOptions.size()); + assertEquals(SortOptions.Kind.Doc, sortOptions.get(0)._kind()); + ScoreSort scoreSort = (ScoreSort) sortOptions.get(0)._get(); + assertEquals(SortOrder.Desc, scoreSort.order()); + } }