Skip to content

Commit c36580e

Browse files
Merge #1313
1313: Add support for distinct attribute r=curquiza a=thomas-lcdp # Pull Request ## Related issue Fixes #1312 ## What does this PR do? - Add support for distinct attribute ## PR checklist Please check if your PR fulfills the following requirements: - [x] Does this PR fix an existing issue, or have you listed the changes applied in the PR description (and why they are needed)? - [x] Have you read the contributing guidelines? - [x] Have you made sure that the title is accurate and descriptive of the changes? Thank you so much for contributing to Meilisearch! Co-authored-by: Thomas <[email protected]>
2 parents 04b4e08 + f2bb298 commit c36580e

File tree

6 files changed

+29
-0
lines changed

6 files changed

+29
-0
lines changed

.changeset/smart-llamas-draw.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@meilisearch/instant-meilisearch": patch
3+
---
4+
5+
Add support for distinct attribute

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,3 +124,5 @@ data.ms
124124
.turbo
125125

126126
.angular
127+
128+
.idea

packages/instant-meilisearch/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,7 @@ The following options can be overridden:
224224
[`showRankingScore`](https://www.meilisearch.com/docs/reference/api/search#ranking-score),
225225
[`attributesToSearchOn`](https://www.meilisearch.com/docs/reference/api/search#customize-attributes-to-search-on-at-search-time),
226226
[`hybrid`](https://www.meilisearch.com/docs/learn/experimental/vector_search)
227+
[`distinct`](https://www.meilisearch.com/docs/learn/relevancy/distinct_attribute)
227228

228229
```js
229230
instantMeiliSearch(

packages/instant-meilisearch/src/adapter/search-request-adapter/__tests__/search-params.test.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,19 @@ describe('Parameters adapter', () => {
9494

9595
expect(searchParams.hybrid).toBe(hybridSearchConfig)
9696
})
97+
98+
test('distinct search configuration can be set via search parameters', () => {
99+
const distinctSearchConfig = 'title'
100+
101+
const searchParams = adaptSearchParams({
102+
...DEFAULT_CONTEXT,
103+
meiliSearchParams: {
104+
distinct: distinctSearchConfig,
105+
},
106+
})
107+
108+
expect(searchParams.distinct).toBe(distinctSearchConfig)
109+
})
97110
})
98111

99112
describe('Geo filter adapter', () => {

packages/instant-meilisearch/src/adapter/search-request-adapter/search-params-adapter.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,12 @@ export function MeiliParamsCreator(searchContext: SearchContext) {
238238
meiliSearchParams.hybrid = value
239239
}
240240
},
241+
addDistinct() {
242+
const value = overrideParams?.distinct
243+
if (value !== undefined) {
244+
meiliSearchParams.distinct = value
245+
}
246+
},
241247
}
242248
}
243249

@@ -270,6 +276,7 @@ export function adaptSearchParams(
270276
meilisearchParams.addShowRankingScore()
271277
meilisearchParams.addAttributesToSearchOn()
272278
meilisearchParams.addHybridSearch()
279+
meilisearchParams.addDistinct()
273280

274281
return meilisearchParams.getParams()
275282
}

packages/instant-meilisearch/src/types/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ export type OverridableMeiliSearchSearchParameters = Pick<
5555
| 'showRankingScore'
5656
| 'attributesToSearchOn'
5757
| 'hybrid'
58+
| 'distinct'
5859
>
5960

6061
type BaseInstantMeiliSearchOptions = {

0 commit comments

Comments
 (0)