Skip to content

Commit 99af7a2

Browse files
feat: support distinct in federated search
1 parent acfe026 commit 99af7a2

2 files changed

Lines changed: 34 additions & 0 deletions

File tree

‎src/main/java/com/meilisearch/sdk/MultiSearchFederation.java‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ public class MultiSearchFederation {
1111
private Integer offset;
1212
private MergeFacets mergeFacets;
1313
private Map<String, String[]> facetsByIndex;
14+
private String distinct;
1415

1516
public MultiSearchFederation setLimit(Integer limit) {
1617
this.limit = limit;
@@ -32,6 +33,11 @@ public MultiSearchFederation setFacetsByIndex(Map<String, String[]> facetsByInde
3233
return this;
3334
}
3435

36+
public MultiSearchFederation setDistinct(String distinct) {
37+
this.distinct = distinct;
38+
return this;
39+
}
40+
3541
/**
3642
* Method that returns the JSON String of the MultiSearchFederation
3743
*
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.meilisearch.sdk;
2+
3+
import static org.hamcrest.MatcherAssert.assertThat;
4+
import static org.hamcrest.Matchers.containsString;
5+
import static org.hamcrest.Matchers.not;
6+
7+
import com.meilisearch.sdk.exceptions.MeilisearchException;
8+
import com.meilisearch.sdk.json.GsonJsonHandler;
9+
import org.junit.jupiter.api.Test;
10+
11+
class MultiSearchFederationTest {
12+
13+
private final GsonJsonHandler jsonHandler = new GsonJsonHandler();
14+
15+
@Test
16+
void serializesDistinctInFederationOptions() throws MeilisearchException {
17+
MultiSearchFederation federation = new MultiSearchFederation().setDistinct("movie_id");
18+
19+
assertThat(jsonHandler.encode(federation), containsString("\"distinct\":\"movie_id\""));
20+
}
21+
22+
@Test
23+
void omitsDistinctWhenNotSet() throws MeilisearchException {
24+
MultiSearchFederation federation = new MultiSearchFederation().setLimit(10);
25+
26+
assertThat(jsonHandler.encode(federation), not(containsString("distinct")));
27+
}
28+
}

0 commit comments

Comments
 (0)