Skip to content
This repository was archived by the owner on Jan 31, 2022. It is now read-only.

Commit f6fe596

Browse files
authored
[feat] facetingAfterDistinct (#300)
* [feat] implement facetingAfterDistinct in Query * [feat] facetingAfterDistinct: better warning about parameter * chore: Update link to target API Client doc
1 parent 7962e57 commit f6fe596

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

algoliasearch/src/main/java/com/algolia/search/saas/Query.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,6 +373,22 @@ public String[] getFacets() {
373373
return null;
374374
}
375375

376+
private static final String KEY_FACETING_AFTER_DISTINCT = "facetingAfterDistinct";
377+
378+
public @Nullable Boolean getFacetingAfterDistinct() {
379+
return parseBoolean(get(KEY_FACETING_AFTER_DISTINCT));
380+
}
381+
382+
/**
383+
* Force faceting to be applied after de-duplication. Please check <a href="https://www.algolia.com/doc/rest-api/search/#facetingafterdistinct">documentation</a> for consequences and limitations
384+
*
385+
* @param enabled if {@code true}, facets will be computed after de-duplication is applied.
386+
* @see <a href="https://www.algolia.com/doc/api-client/android/parameters/#facetingafterdistinct">facetingAfterDistinct's documentation</a>
387+
*/
388+
public @NonNull Query setFacetingAfterDistinct(Boolean enabled) {
389+
return set(KEY_FACETING_AFTER_DISTINCT, enabled);
390+
}
391+
376392
private static final String KEY_FILTERS = "filters";
377393

378394
/**

algoliasearch/src/test/java/com/algolia/search/saas/QueryTest.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -763,4 +763,15 @@ public void responseFields() throws UnsupportedEncodingException {
763763
expected = "responseFields=" + URLEncoder.encode("[\"hits\",\"page\"]", "UTF-8");
764764
assertTrue("The built query should contain \"" + expected + "\", but contains _" + queryStr + "_.", queryStr.contains(expected));
765765
}
766+
767+
768+
@Test
769+
public void facetingAfterDistinct() {
770+
Query query = new Query();
771+
assertNull(query.getFacetingAfterDistinct());
772+
query.setFacetingAfterDistinct(true);
773+
assertEquals(Boolean.TRUE, query.getFacetingAfterDistinct());
774+
assertEquals("true", query.get("facetingAfterDistinct"));
775+
assertEquals(query.getFacetingAfterDistinct(), Query.parse(query.build()).getFacetingAfterDistinct());
776+
}
766777
}

0 commit comments

Comments
 (0)