From 2e07ab7faa8f4730b5f36e4b7db265a360157aa4 Mon Sep 17 00:00:00 2001 From: Andriy Redko Date: Fri, 12 Apr 2024 16:31:50 -0400 Subject: [PATCH] Add missed fields to PhraseSuggestOption: collapseMatch (#940) Signed-off-by: Andriy Redko --- CHANGELOG.md | 1 + .../core/search/PhraseSuggestOption.java | 27 +++++++++++++++++++ .../integTest/AbstractRequestIT.java | 22 +++++++-------- 3 files changed, 38 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cbae54f4cc..4ec655d42e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,6 +35,7 @@ This section is for maintaining a changelog for all breaking changes for the cli ## [Unreleased 2.x] ### Added +- Add missed fields to PhraseSuggestOption: collapseMatch ([#940](https://github.com/opensearch-project/opensearch-java/pull/940)) ### Dependencies diff --git a/java-client/src/main/java/org/opensearch/client/opensearch/core/search/PhraseSuggestOption.java b/java-client/src/main/java/org/opensearch/client/opensearch/core/search/PhraseSuggestOption.java index 21b2bdee0e..723788bc7e 100644 --- a/java-client/src/main/java/org/opensearch/client/opensearch/core/search/PhraseSuggestOption.java +++ b/java-client/src/main/java/org/opensearch/client/opensearch/core/search/PhraseSuggestOption.java @@ -56,6 +56,9 @@ public class PhraseSuggestOption implements JsonpSerializable { private final double score; + @Nullable + private final Boolean collateMatch; + // --------------------------------------------------------------------------------------------- private PhraseSuggestOption(Builder builder) { @@ -63,6 +66,7 @@ private PhraseSuggestOption(Builder builder) { this.text = ApiTypeHelper.requireNonNull(builder.text, this, "text"); this.highlighted = builder.highlighted; this.score = ApiTypeHelper.requireNonNull(builder.score, this, "score"); + this.collateMatch = builder.collateMatch; } @@ -92,6 +96,13 @@ public final double score() { return this.score; } + /** + * API name: {@code collate_match} + */ + public final Boolean collateMatch() { + return this.collateMatch; + } + /** * Serialize this object to JSON. */ @@ -114,6 +125,10 @@ protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) { generator.writeKey("score"); generator.write(this.score); + if (this.collateMatch != null) { + generator.writeKey("collate_match"); + generator.write(this.collateMatch); + } } // --------------------------------------------------------------------------------------------- @@ -130,6 +145,9 @@ public static class Builder extends ObjectBuilderBase implements ObjectBuilder

c.query(q -> q.source("{\"match\": {\"{{field_name}}\" : \"{{suggestion}}\"}}")) + .prune(true) + .params(Map.of("field_name", JsonData.of("msg"))) + ) + .build(); FieldSuggester fieldSuggester = new FieldSuggester.Builder().text("design paterns").phrase(phraseSuggester).build(); Suggester suggester = new Suggester.Builder().suggesters(Collections.singletonMap(suggesterName, fieldSuggester)).build(); SearchRequest searchRequest = new SearchRequest.Builder().index(index).suggest(suggester).build(); @@ -785,19 +793,9 @@ public void testPhraseSuggester() throws IOException { assertTrue(response.suggest().get(suggesterName).get(0).isPhrase()); assertNotNull(response.suggest().get(suggesterName).get(0).phrase().options()); assertEquals(response.suggest().get(suggesterName).get(0).phrase().options().get(0).text(), "design patterns"); + assertEquals(response.suggest().get(suggesterName).get(0).phrase().options().get(0).collateMatch(), true); } - // @Test - // public void testValueBodyResponse() throws Exception { - // DiskUsageResponse resp = highLevelClient().indices().diskUsage(b -> b - // .index("*") - // .allowNoIndices(true) - // .runExpensiveTasks(true) - // ); - // - // assertNotNull(resp.valueBody().toJson().asJsonObject().get("_shards")); - // } - public static class AppData { private int intValue;