File tree Expand file tree Collapse file tree 3 files changed +50
-1
lines changed
packages/instant-meilisearch/src
adapter/search-response-adapter Expand file tree Collapse file tree 3 files changed +50
-1
lines changed Original file line number Diff line number Diff line change
1
+ import {
2
+ AlgoliaSearchResponse ,
3
+ MeiliFacetStats ,
4
+ AlgoliaFacetStats ,
5
+ } from '../../types'
6
+
7
+ export function adaptFacetStats (
8
+ meiliFacetStats : MeiliFacetStats
9
+ ) : AlgoliaSearchResponse [ 'facets_stats' ] {
10
+ const facetStats = Object . keys ( meiliFacetStats ) . reduce (
11
+ ( stats : AlgoliaFacetStats , facet : string ) => {
12
+ stats [ facet ] = { ...meiliFacetStats [ facet ] , avg : 0 , sum : 0 } // Set at 0 as these numbers are not provided by Meilisearch
13
+
14
+ return stats
15
+ } ,
16
+ { } as AlgoliaFacetStats
17
+ )
18
+ return facetStats
19
+ }
Original file line number Diff line number Diff line change @@ -8,6 +8,7 @@ import { adaptHits } from './hits-adapter'
8
8
import { adaptTotalHits } from './total-hits-adapter'
9
9
import { adaptPaginationParameters } from './pagination-adapter'
10
10
import { adaptFacetDistribution } from './facet-distribution-adapter'
11
+ import { adaptFacetStats } from './adapt-facet-stats'
11
12
12
13
/**
13
14
* Adapt multiple search results from Meilisearch
@@ -54,6 +55,7 @@ export function adaptSearchResult<T>(
54
55
query,
55
56
indexUid,
56
57
facetDistribution : responseFacetDistribution = { } ,
58
+ facetStats = { } ,
57
59
} = meiliSearchResult
58
60
59
61
const facets = Object . keys ( responseFacetDistribution )
@@ -86,6 +88,7 @@ export function adaptSearchResult<T>(
86
88
hits,
87
89
params : '' ,
88
90
exhaustiveNbHits : false ,
91
+ facets_stats : adaptFacetStats ( facetStats ) ,
89
92
}
90
93
return adaptedSearchResult
91
94
}
Original file line number Diff line number Diff line change @@ -15,7 +15,12 @@ export type {
15
15
}
16
16
export type { SearchResponse as AlgoliaSearchResponse } from '@algolia/client-search'
17
17
18
- export type { Filter , FacetDistribution , MeiliSearch } from 'meilisearch'
18
+ export type {
19
+ Filter ,
20
+ FacetDistribution ,
21
+ MeiliSearch ,
22
+ FacetStats as MeiliFacetStats ,
23
+ } from 'meilisearch'
19
24
20
25
export type InstantSearchParams = AlgoliaMultipleQueriesQuery [ 'params' ]
21
26
@@ -109,3 +114,25 @@ export type MultiSearchResolver = {
109
114
instantSearchPagination : PaginationState [ ]
110
115
) => Promise < MeilisearchMultiSearchResult [ ] >
111
116
}
117
+
118
+ export type AlgoliaFacetStats = Record <
119
+ string ,
120
+ {
121
+ /**
122
+ * The minimum value in the result set.
123
+ */
124
+ min : number
125
+ /**
126
+ * The maximum value in the result set.
127
+ */
128
+ max : number
129
+ /**
130
+ * The average facet value in the result set.
131
+ */
132
+ avg : number
133
+ /**
134
+ * The sum of all values in the result set.
135
+ */
136
+ sum : number
137
+ }
138
+ >
You can’t perform that action at this time.
0 commit comments