Skip to content

Commit a28f3eb

Browse files
authored
Change sort and searchAfter to List<FieldValue> (#1225)
* Change sort and searchAfter to List<FieldValue> Signed-off-by: Thomas Farr <[email protected]> * Changelog Signed-off-by: Thomas Farr <[email protected]> * Fix test Signed-off-by: Thomas Farr <[email protected]> --------- Signed-off-by: Thomas Farr <[email protected]>
1 parent 282f415 commit a28f3eb

File tree

4 files changed

+21
-17
lines changed

4 files changed

+21
-17
lines changed

CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ This section is for maintaining a changelog for all breaking changes for the cli
2323
- Changed type of `DanglingIndex`'s `creationDateMillis` field from `String` to `long` ([#1124](https://github.com/opensearch-project/opensearch-java/pull/1124))
2424
- Changed type of `ShardStatistics`'s `total`, `successful`, `failed` & `skipped` fields from `Number` to `int/Integer` ([#1158](https://github.com/opensearch-project/opensearch-java/pull/1158))
2525
- Unified `tasks.Info` and `tasks.State` classes into `tasks.TaskInfo` ([#1187](https://github.com/opensearch-project/opensearch-java/pull/1187))
26+
- Changed type of `Hit`'s `sort` field from `List<String>` to `List<FieldValue>` ([#1225](https://github.com/opensearch-project/opensearch-java/pull/1225))
27+
- Changed type of `MultisearchBody`'s `searchAfter` field from `List<String>` to `List<FieldValue>` ([#1225](https://github.com/opensearch-project/opensearch-java/pull/1225))
2628

2729
### Deprecated
2830
- Deprecate RestClientTransport ([#536](https://github.com/opensearch-project/opensearch-java/pull/536))

java-client/src/main/java/org/opensearch/client/opensearch/core/msearch/MultisearchBody.java

+9-8
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import org.opensearch.client.json.ObjectBuilderDeserializer;
4545
import org.opensearch.client.json.ObjectDeserializer;
4646
import org.opensearch.client.json.PlainJsonSerializable;
47+
import org.opensearch.client.opensearch._types.FieldValue;
4748
import org.opensearch.client.opensearch._types.ScriptField;
4849
import org.opensearch.client.opensearch._types.SortOptions;
4950
import org.opensearch.client.opensearch._types.aggregations.Aggregation;
@@ -77,7 +78,7 @@ public class MultisearchBody implements PlainJsonSerializable {
7778
@Nullable
7879
private final Query postFilter;
7980

80-
private final List<String> searchAfter;
81+
private final List<FieldValue> searchAfter;
8182

8283
@Nullable
8384
private final Integer size;
@@ -202,7 +203,7 @@ public final Query postFilter() {
202203
/**
203204
* API name: {@code search_after}
204205
*/
205-
public final List<String> searchAfter() {
206+
public final List<FieldValue> searchAfter() {
206207
return this.searchAfter;
207208
}
208209

@@ -407,8 +408,8 @@ protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
407408
if (ApiTypeHelper.isDefined(this.searchAfter)) {
408409
generator.writeKey("search_after");
409410
generator.writeStartArray();
410-
for (String item0 : this.searchAfter) {
411-
generator.write(item0);
411+
for (FieldValue item0 : this.searchAfter) {
412+
item0.serialize(generator, mapper);
412413

413414
}
414415
generator.writeEnd();
@@ -578,7 +579,7 @@ public static class Builder extends ObjectBuilderBase implements ObjectBuilder<M
578579
private Query postFilter;
579580

580581
@Nullable
581-
private List<String> searchAfter;
582+
private List<FieldValue> searchAfter;
582583

583584
@Nullable
584585
private Integer size;
@@ -716,7 +717,7 @@ public final Builder postFilter(Function<Query.Builder, ObjectBuilder<Query>> fn
716717
* <p>
717718
* Adds all elements of <code>list</code> to <code>searchAfter</code>.
718719
*/
719-
public final Builder searchAfter(List<String> list) {
720+
public final Builder searchAfter(List<FieldValue> list) {
720721
this.searchAfter = _listAddAll(this.searchAfter, list);
721722
return this;
722723
}
@@ -726,7 +727,7 @@ public final Builder searchAfter(List<String> list) {
726727
* <p>
727728
* Adds one or more values to <code>searchAfter</code>.
728729
*/
729-
public final Builder searchAfter(String value, String... values) {
730+
public final Builder searchAfter(FieldValue value, FieldValue... values) {
730731
this.searchAfter = _listAdd(this.searchAfter, value, values);
731732
return this;
732733
}
@@ -1092,7 +1093,7 @@ protected static void setupMultisearchBodyDeserializer(ObjectDeserializer<Multis
10921093
op.add(Builder::from, JsonpDeserializer.integerDeserializer(), "from");
10931094
op.add(Builder::minScore, JsonpDeserializer.doubleDeserializer(), "min_score");
10941095
op.add(Builder::postFilter, Query._DESERIALIZER, "post_filter");
1095-
op.add(Builder::searchAfter, JsonpDeserializer.arrayDeserializer(JsonpDeserializer.stringDeserializer()), "search_after");
1096+
op.add(Builder::searchAfter, JsonpDeserializer.arrayDeserializer(FieldValue._DESERIALIZER), "search_after");
10961097
op.add(Builder::size, JsonpDeserializer.integerDeserializer(), "size");
10971098
op.add(Builder::sort, JsonpDeserializer.arrayDeserializer(SortOptions._DESERIALIZER), "sort");
10981099
op.add(Builder::trackScores, JsonpDeserializer.booleanDeserializer(), "track_scores");

java-client/src/main/java/org/opensearch/client/opensearch/core/search/Hit.java

+9-8
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
import org.opensearch.client.json.ObjectBuilderDeserializer;
4747
import org.opensearch.client.json.ObjectDeserializer;
4848
import org.opensearch.client.json.PlainJsonSerializable;
49+
import org.opensearch.client.opensearch._types.FieldValue;
4950
import org.opensearch.client.opensearch.core.explain.Explanation;
5051
import org.opensearch.client.util.ApiTypeHelper;
5152
import org.opensearch.client.util.ObjectBuilder;
@@ -98,7 +99,7 @@ public class Hit<TDocument> implements PlainJsonSerializable {
9899
@Nullable
99100
private final Long version;
100101

101-
private final List<String> sort;
102+
private final List<FieldValue> sort;
102103

103104
@Nullable
104105
private final JsonpSerializer<TDocument> tDocumentSerializer;
@@ -266,7 +267,7 @@ public final Long version() {
266267
/**
267268
* API name: {@code sort}
268269
*/
269-
public final List<String> sort() {
270+
public final List<FieldValue> sort() {
270271
return this.sort;
271272
}
272273

@@ -404,8 +405,8 @@ protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
404405
if (ApiTypeHelper.isDefined(this.sort)) {
405406
generator.writeKey("sort");
406407
generator.writeStartArray();
407-
for (String item0 : this.sort) {
408-
generator.write(item0);
408+
for (FieldValue item0 : this.sort) {
409+
item0.serialize(generator, mapper);
409410

410411
}
411412
generator.writeEnd();
@@ -474,7 +475,7 @@ public static class Builder<TDocument> extends ObjectBuilderBase implements Obje
474475
private Long version;
475476

476477
@Nullable
477-
private List<String> sort;
478+
private List<FieldValue> sort;
478479

479480
@Nullable
480481
private JsonpSerializer<TDocument> tDocumentSerializer;
@@ -703,7 +704,7 @@ public final Builder<TDocument> version(@Nullable Long value) {
703704
* <p>
704705
* Adds all elements of <code>list</code> to <code>sort</code>.
705706
*/
706-
public final Builder<TDocument> sort(List<String> list) {
707+
public final Builder<TDocument> sort(List<FieldValue> list) {
707708
this.sort = _listAddAll(this.sort, list);
708709
return this;
709710
}
@@ -713,7 +714,7 @@ public final Builder<TDocument> sort(List<String> list) {
713714
* <p>
714715
* Adds one or more values to <code>sort</code>.
715716
*/
716-
public final Builder<TDocument> sort(String value, String... values) {
717+
public final Builder<TDocument> sort(FieldValue value, FieldValue... values) {
717718
this.sort = _listAdd(this.sort, value, values);
718719
return this;
719720
}
@@ -778,7 +779,7 @@ protected static <TDocument> void setupHitDeserializer(
778779
op.add(Builder::seqNo, JsonpDeserializer.longDeserializer(), "_seq_no");
779780
op.add(Builder::primaryTerm, JsonpDeserializer.longDeserializer(), "_primary_term");
780781
op.add(Builder::version, JsonpDeserializer.longDeserializer(), "_version");
781-
op.add(Builder::sort, JsonpDeserializer.arrayDeserializer(JsonpDeserializer.stringOrNullDeserializer()), "sort");
782+
op.add(Builder::sort, JsonpDeserializer.arrayDeserializer(FieldValue._DESERIALIZER), "sort");
782783

783784
}
784785

java-client/src/test/java11/org/opensearch/client/opensearch/integTest/AbstractMultiSearchRequestIT.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ public void shouldReturnMultiSearchesSearchAfter() throws Exception {
179179
assertEquals(1, response.responses().size());
180180
assertEquals(3, response.responses().get(0).result().hits().hits().size());
181181

182-
List<String> sorts = response.responses().get(0).result().hits().hits().get(1).sort();
182+
List<FieldValue> sorts = response.responses().get(0).result().hits().hits().get(1).sort();
183183
RequestItem sortedAfterItemsQuery = createMSearchSortedFuzzyRequest(b -> b.searchAfter(sorts));
184184

185185
MsearchResponse<ShopItem> response2 = sendMSearchRequest(index, List.of(sortedAfterItemsQuery));

0 commit comments

Comments
 (0)