Skip to content

Commit cb01a9a

Browse files
committed
Add missed fields to PhraseSuggestOption: collapseMatch
Signed-off-by: Andriy Redko <[email protected]>
1 parent a0a4f75 commit cb01a9a

File tree

3 files changed

+38
-12
lines changed

3 files changed

+38
-12
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ This section is for maintaining a changelog for all breaking changes for the cli
3535
## [Unreleased 2.x]
3636

3737
### Added
38+
- Add missed fields to PhraseSuggestOption: collapseMatch ([#960](https://github.com/opensearch-project/opensearch-java/pull/960))
3839

3940
### Dependencies
4041

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

+27
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,17 @@ public class PhraseSuggestOption implements JsonpSerializable {
5656

5757
private final double score;
5858

59+
@Nullable
60+
private final Boolean collateMatch;
61+
5962
// ---------------------------------------------------------------------------------------------
6063

6164
private PhraseSuggestOption(Builder builder) {
6265

6366
this.text = ApiTypeHelper.requireNonNull(builder.text, this, "text");
6467
this.highlighted = builder.highlighted;
6568
this.score = ApiTypeHelper.requireNonNull(builder.score, this, "score");
69+
this.collateMatch = builder.collateMatch;
6670

6771
}
6872

@@ -92,6 +96,13 @@ public final double score() {
9296
return this.score;
9397
}
9498

99+
/**
100+
* API name: {@code collate_match}
101+
*/
102+
public final Boolean collateMatch() {
103+
return this.collateMatch;
104+
}
105+
95106
/**
96107
* Serialize this object to JSON.
97108
*/
@@ -114,6 +125,10 @@ protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
114125
generator.writeKey("score");
115126
generator.write(this.score);
116127

128+
if (this.collateMatch != null) {
129+
generator.writeKey("collate_match");
130+
generator.write(this.collateMatch);
131+
}
117132
}
118133

119134
// ---------------------------------------------------------------------------------------------
@@ -130,6 +145,9 @@ public static class Builder extends ObjectBuilderBase implements ObjectBuilder<P
130145

131146
private Double score;
132147

148+
@Nullable
149+
private Boolean collateMatch;
150+
133151
/**
134152
* Required - API name: {@code text}
135153
*/
@@ -154,6 +172,14 @@ public final Builder score(double value) {
154172
return this;
155173
}
156174

175+
/**
176+
* API name: {@code collate_match}
177+
*/
178+
public final Builder collateMatch(@Nullable Boolean value) {
179+
this.collateMatch = value;
180+
return this;
181+
}
182+
157183
/**
158184
* Builds a {@link PhraseSuggestOption}.
159185
*
@@ -182,6 +208,7 @@ protected static void setupPhraseSuggestOptionDeserializer(ObjectDeserializer<Ph
182208
op.add(Builder::text, JsonpDeserializer.stringDeserializer(), "text");
183209
op.add(Builder::highlighted, JsonpDeserializer.stringDeserializer(), "highlighted");
184210
op.add(Builder::score, JsonpDeserializer.doubleDeserializer(), "score");
211+
op.add(Builder::collateMatch, JsonpDeserializer.booleanDeserializer(), "collate_match");
185212

186213
}
187214

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

+10-12
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
import java.util.concurrent.TimeUnit;
4343
import org.junit.Test;
4444
import org.opensearch.Version;
45+
import org.opensearch.client.json.JsonData;
4546
import org.opensearch.client.opensearch.OpenSearchAsyncClient;
4647
import org.opensearch.client.opensearch._types.FieldValue;
4748
import org.opensearch.client.opensearch._types.OpenSearchException;
@@ -772,7 +773,14 @@ public void testPhraseSuggester() throws IOException {
772773

773774
String suggesterName = "msgSuggester";
774775

775-
PhraseSuggester phraseSuggester = FieldSuggesterBuilders.phrase().field("msg.trigram").build();
776+
PhraseSuggester phraseSuggester = FieldSuggesterBuilders.phrase()
777+
.field("msg.trigram")
778+
.collate(
779+
c -> c.query(q -> q.source("{\"match\": {\"{{field_name}}\" : \"{{suggestion}}\"}}"))
780+
.prune(true)
781+
.params(Map.of("field_name", JsonData.of("msg")))
782+
)
783+
.build();
776784
FieldSuggester fieldSuggester = new FieldSuggester.Builder().text("design paterns").phrase(phraseSuggester).build();
777785
Suggester suggester = new Suggester.Builder().suggesters(Collections.singletonMap(suggesterName, fieldSuggester)).build();
778786
SearchRequest searchRequest = new SearchRequest.Builder().index(index).suggest(suggester).build();
@@ -785,19 +793,9 @@ public void testPhraseSuggester() throws IOException {
785793
assertTrue(response.suggest().get(suggesterName).get(0).isPhrase());
786794
assertNotNull(response.suggest().get(suggesterName).get(0).phrase().options());
787795
assertEquals(response.suggest().get(suggesterName).get(0).phrase().options().get(0).text(), "design patterns");
796+
assertEquals(response.suggest().get(suggesterName).get(0).phrase().options().get(0).collateMatch(), true);
788797
}
789798

790-
// @Test
791-
// public void testValueBodyResponse() throws Exception {
792-
// DiskUsageResponse resp = highLevelClient().indices().diskUsage(b -> b
793-
// .index("*")
794-
// .allowNoIndices(true)
795-
// .runExpensiveTasks(true)
796-
// );
797-
//
798-
// assertNotNull(resp.valueBody().toJson().asJsonObject().get("_shards"));
799-
// }
800-
801799
public static class AppData {
802800

803801
private int intValue;

0 commit comments

Comments
 (0)