From 877a3e8f8339d6954f5c4eb7d507658df5ed3a28 Mon Sep 17 00:00:00 2001 From: Charlotte Vermandel Date: Wed, 29 Jun 2022 12:04:14 +0200 Subject: [PATCH] Update search route request and response parameters naming v0.28.x --- src/adapter/search-request-adapter/filters.ts | 10 +++++----- .../search-params-adapter.ts | 2 +- .../search-request-adapter/search-resolver.ts | 11 +++++------ .../search-response-adapter/hits-adapter.ts | 6 +++++- .../search-response-adapter.ts | 14 ++++---------- src/cache/__tests__/assets/utils.ts | 2 +- src/cache/first-facets-distribution.ts | 4 ++-- src/client/instant-meilisearch-client.ts | 6 +++--- src/types/types.ts | 1 - tests/configure.attributes-to-retrieve.tests.ts | 4 ++-- tests/env/react/setup.js | 2 +- tests/facets-distribution.tests.ts | 8 ++++---- tests/filter.tests.ts | 4 ++-- tests/geosearch.tests.ts | 4 ++-- tests/highlight.tests.ts | 4 ++-- tests/pagination.tests.ts | 4 ++-- tests/placeholder-search.tests.ts | 4 ++-- tests/search-resolver.tests.ts | 2 +- tests/snippets.tests.ts | 4 ++-- 19 files changed, 46 insertions(+), 50 deletions(-) diff --git a/src/adapter/search-request-adapter/filters.ts b/src/adapter/search-request-adapter/filters.ts index b09914d7..ecb09198 100644 --- a/src/adapter/search-request-adapter/filters.ts +++ b/src/adapter/search-request-adapter/filters.ts @@ -62,10 +62,10 @@ export function getFacetsFromFilter(filters?: Filter): FacetsCache { } function getFacetsFromDefaultDistribution( - facetsDistribution: FacetsDistribution + facetDistribution: FacetsDistribution ): FacetsCache { - return Object.keys(facetsDistribution).reduce((cache: any, facet) => { - const facetValues = Object.keys(facetsDistribution[facet]) + return Object.keys(facetDistribution).reduce((cache: any, facet) => { + const facetValues = Object.keys(facetDistribution[facet]) return { ...cache, [facet]: facetValues, @@ -91,8 +91,8 @@ export function extractFacets( } /** - * Assign missing filters to facetsDistribution. - * All facet passed as filter should appear in the facetsDistribution. + * Assign missing filters to facetDistribution. + * All facets passed as filter should appear in the facetDistribution. * If not present, the facet is added with 0 as value. * * diff --git a/src/adapter/search-request-adapter/search-params-adapter.ts b/src/adapter/search-request-adapter/search-params-adapter.ts index 6d144ecd..95a8cd80 100644 --- a/src/adapter/search-request-adapter/search-params-adapter.ts +++ b/src/adapter/search-request-adapter/search-params-adapter.ts @@ -22,7 +22,7 @@ export function adaptSearchParams( // Facets const facets = searchContext?.facets if (facets?.length) { - meiliSearchParams.facetsDistribution = facets + meiliSearchParams.facets = facets } // Attributes To Crop diff --git a/src/adapter/search-request-adapter/search-resolver.ts b/src/adapter/search-request-adapter/search-resolver.ts index 04ae6b10..84cb168d 100644 --- a/src/adapter/search-request-adapter/search-resolver.ts +++ b/src/adapter/search-request-adapter/search-resolver.ts @@ -10,11 +10,10 @@ import { addMissingFacets, extractFacets } from './filters' const emptySearch: MeiliSearchResponse> = { hits: [], query: '', - facetsDistribution: {}, + facetDistribution: {}, limit: 0, offset: 0, - exhaustiveNbHits: false, - nbHits: 0, + estimatedTotalHits: 0, processingTimeMs: 0, } @@ -69,10 +68,10 @@ export function SearchResolver(cache: SearchCacheInterface) { .index(searchContext.indexUid) .search(searchContext.query, searchParams) - // Add missing facets back into facetsDistribution - searchResponse.facetsDistribution = addMissingFacets( + // Add missing facets back into facetDistribution + searchResponse.facetDistribution = addMissingFacets( facetsCache, - searchResponse.facetsDistribution + searchResponse.facetDistribution ) // Cache response diff --git a/src/adapter/search-response-adapter/hits-adapter.ts b/src/adapter/search-response-adapter/hits-adapter.ts index 9899c8d1..dae04ff8 100644 --- a/src/adapter/search-response-adapter/hits-adapter.ts +++ b/src/adapter/search-response-adapter/hits-adapter.ts @@ -21,7 +21,11 @@ export function adaptHits( let adaptedHits = paginatedHits.map((hit: Record) => { // Creates Hit object compliant with InstantSearch if (Object.keys(hit).length > 0) { - const { _formatted: formattedHit, _matchesInfo, ...documentFields } = hit + const { + _formatted: formattedHit, + _matchesPosition, + ...documentFields + } = hit const adaptedHit: Record = Object.assign( documentFields, diff --git a/src/adapter/search-response-adapter/search-response-adapter.ts b/src/adapter/search-response-adapter/search-response-adapter.ts index 1da635ae..57a25524 100644 --- a/src/adapter/search-response-adapter/search-response-adapter.ts +++ b/src/adapter/search-response-adapter/search-response-adapter.ts @@ -21,22 +21,16 @@ export function adaptSearchResponse( ): { results: Array> } { const searchResponseOptionals: Record = {} - const facets = searchResponse.facetsDistribution + const facets = searchResponse.facetDistribution const { pagination } = searchContext - const exhaustiveFacetsCount = searchResponse?.exhaustiveFacetsCount - if (exhaustiveFacetsCount) { - searchResponseOptionals.exhaustiveFacetsCount = exhaustiveFacetsCount - } - const nbPages = ceiledDivision( searchResponse.hits.length, pagination.hitsPerPage ) const hits = adaptHits(searchResponse.hits, searchContext, pagination) - const exhaustiveNbHits = searchResponse.exhaustiveNbHits - const nbHits = searchResponse.nbHits + const estimatedTotalHits = searchResponse.estimatedTotalHits const processingTimeMs = searchResponse.processingTimeMs const query = searchResponse.query @@ -49,12 +43,12 @@ export function adaptSearchResponse( page, facets, nbPages, - exhaustiveNbHits, - nbHits, + nbHits: estimatedTotalHits, processingTimeMS: processingTimeMs, query, hits, params: '', + exhaustiveNbHits: false, ...searchResponseOptionals, } return { diff --git a/src/cache/__tests__/assets/utils.ts b/src/cache/__tests__/assets/utils.ts index 8971dc84..e3152d5e 100644 --- a/src/cache/__tests__/assets/utils.ts +++ b/src/cache/__tests__/assets/utils.ts @@ -4,6 +4,6 @@ export const searchResponse = { offset: 0, limit: 0, processingTimeMs: 0, - nbHits: 0, + estimatedTotalHits: 0, exhaustiveNbHits: false, } diff --git a/src/cache/first-facets-distribution.ts b/src/cache/first-facets-distribution.ts index 30b2f6fa..c2491fd5 100644 --- a/src/cache/first-facets-distribution.ts +++ b/src/cache/first-facets-distribution.ts @@ -1,6 +1,6 @@ import { FacetsDistribution } from '../types' -export function cacheFirstFacetsDistribution( +export function cacheFirstFacetDistribution( defaultFacetDistribution: FacetsDistribution, searchResponse: any ): FacetsDistribution { @@ -8,7 +8,7 @@ export function cacheFirstFacetsDistribution( searchResponse.query === '' && Object.keys(defaultFacetDistribution).length === 0 ) { - return searchResponse.facetsDistribution + return searchResponse.facetDistribution } return defaultFacetDistribution } diff --git a/src/client/instant-meilisearch-client.ts b/src/client/instant-meilisearch-client.ts index 2a4261e0..6386bfd1 100644 --- a/src/client/instant-meilisearch-client.ts +++ b/src/client/instant-meilisearch-client.ts @@ -12,7 +12,7 @@ import { SearchResolver, } from '../adapter' import { createSearchContext } from '../contexts' -import { SearchCache, cacheFirstFacetsDistribution } from '../cache/' +import { SearchCache, cacheFirstFacetDistribution } from '../cache/' /** * Instanciate SearchClient required by instantsearch.js. @@ -60,9 +60,9 @@ export function instantMeiliSearch( ) // Cache first facets distribution of the instantMeilisearch instance - // Needed to add in the facetsDistribution the fields that were not returned + // Needed to add in the facetDistribution the fields that were not returned // When the user sets `keepZeroFacets` to true. - defaultFacetDistribution = cacheFirstFacetsDistribution( + defaultFacetDistribution = cacheFirstFacetDistribution( defaultFacetDistribution, searchResponse ) diff --git a/src/types/types.ts b/src/types/types.ts index 4a2692b2..32189ab9 100644 --- a/src/types/types.ts +++ b/src/types/types.ts @@ -1,5 +1,4 @@ import type { - MeiliSearch, SearchResponse as MeiliSearchResponse, FacetsDistribution, } from 'meilisearch' diff --git a/tests/configure.attributes-to-retrieve.tests.ts b/tests/configure.attributes-to-retrieve.tests.ts index 4b74732c..ac618f86 100644 --- a/tests/configure.attributes-to-retrieve.tests.ts +++ b/tests/configure.attributes-to-retrieve.tests.ts @@ -8,12 +8,12 @@ import { describe('Instant Meilisearch Browser test', () => { beforeAll(async () => { const deleteTask = await meilisearchClient.deleteIndex('movies') - await meilisearchClient.waitForTask(deleteTask.uid) + await meilisearchClient.waitForTask(deleteTask.taskUid) const documentsTask = await meilisearchClient .index('movies') .addDocuments(dataset) - await meilisearchClient.index('movies').waitForTask(documentsTask.uid) + await meilisearchClient.index('movies').waitForTask(documentsTask.taskUid) }) test('Test attributesToRetrieve on no attributes', async () => { diff --git a/tests/env/react/setup.js b/tests/env/react/setup.js index cc640daa..ff349371 100644 --- a/tests/env/react/setup.js +++ b/tests/env/react/setup.js @@ -244,6 +244,6 @@ const { MeiliSearch } = require('meilisearch') const response = await index.addDocuments(dataset) - const task = await client.waitForTask(response.uid) + const task = await client.waitForTask(response.taskUid) console.log(task) })() diff --git a/tests/facets-distribution.tests.ts b/tests/facets-distribution.tests.ts index 68bbf1c7..06d87fc0 100644 --- a/tests/facets-distribution.tests.ts +++ b/tests/facets-distribution.tests.ts @@ -3,17 +3,17 @@ import { searchClient, dataset, meilisearchClient } from './assets/utils' describe('Instant Meilisearch Browser test', () => { beforeAll(async () => { const deleteTask = await meilisearchClient.deleteIndex('movies') - await meilisearchClient.waitForTask(deleteTask.uid) + await meilisearchClient.waitForTask(deleteTask.taskUid) await meilisearchClient .index('movies') .updateFilterableAttributes(['genres']) const documentsTask = await meilisearchClient .index('movies') .addDocuments(dataset) - await meilisearchClient.index('movies').waitForTask(documentsTask.uid) + await meilisearchClient.index('movies').waitForTask(documentsTask.taskUid) }) - test('Test empty array on facetsDistribution', async () => { + test('Test empty array on facetDistribution', async () => { const response = await searchClient.search([ { indexName: 'movies', @@ -26,7 +26,7 @@ describe('Instant Meilisearch Browser test', () => { expect(response.results[0].facets?.genres).toEqual(undefined) }) - test('Test one facet on facetsDistribution', async () => { + test('Test one facet on facetDistribution', async () => { const response = await searchClient.search([ { indexName: 'movies', diff --git a/tests/filter.tests.ts b/tests/filter.tests.ts index 78138eea..77ae04cb 100644 --- a/tests/filter.tests.ts +++ b/tests/filter.tests.ts @@ -8,14 +8,14 @@ import { describe('Instant Meilisearch Browser test', () => { beforeAll(async () => { const deleteTask = await meilisearchClient.deleteIndex('movies') - await meilisearchClient.waitForTask(deleteTask.uid) + await meilisearchClient.waitForTask(deleteTask.taskUid) await meilisearchClient .index('movies') .updateFilterableAttributes(['genres', 'title']) const documentsTask = await meilisearchClient .index('movies') .addDocuments(dataset) - await meilisearchClient.index('movies').waitForTask(documentsTask.uid) + await meilisearchClient.index('movies').waitForTask(documentsTask.taskUid) }) test('Test one string facet on filter without a query', async () => { diff --git a/tests/geosearch.tests.ts b/tests/geosearch.tests.ts index 25504d89..bf386f0a 100644 --- a/tests/geosearch.tests.ts +++ b/tests/geosearch.tests.ts @@ -8,7 +8,7 @@ import { describe('Instant Meilisearch Browser test', () => { beforeAll(async () => { const deleteTask = await meilisearchClient.deleteIndex('geotest') - await meilisearchClient.waitForTask(deleteTask.uid) + await meilisearchClient.waitForTask(deleteTask.taskUid) await meilisearchClient .index('geotest') .updateFilterableAttributes(['_geo']) @@ -16,7 +16,7 @@ describe('Instant Meilisearch Browser test', () => { const documentsTask = await meilisearchClient .index('geotest') .addDocuments(geoDataset) - await meilisearchClient.index('movies').waitForTask(documentsTask.uid) + await meilisearchClient.index('movies').waitForTask(documentsTask.taskUid) }) test('Test aroundRadius and aroundLatLng in geo search', async () => { diff --git a/tests/highlight.tests.ts b/tests/highlight.tests.ts index 3da94601..fe93121e 100644 --- a/tests/highlight.tests.ts +++ b/tests/highlight.tests.ts @@ -8,14 +8,14 @@ import { describe('Highlight Browser test', () => { beforeAll(async () => { const deleteTask = await meilisearchClient.deleteIndex('movies') - await meilisearchClient.waitForTask(deleteTask.uid) + await meilisearchClient.waitForTask(deleteTask.taskUid) await meilisearchClient .index('movies') .updateFilterableAttributes(['genres']) const documentsTask = await meilisearchClient .index('movies') .addDocuments(dataset) - await meilisearchClient.index('movies').waitForTask(documentsTask.uid) + await meilisearchClient.index('movies').waitForTask(documentsTask.taskUid) }) test('Test one attributesToHighlight on wrong attribute placeholder', async () => { diff --git a/tests/pagination.tests.ts b/tests/pagination.tests.ts index aaa1a2e7..d6377017 100644 --- a/tests/pagination.tests.ts +++ b/tests/pagination.tests.ts @@ -9,14 +9,14 @@ import { describe('Pagination browser test', () => { beforeAll(async () => { const deleteTask = await meilisearchClient.deleteIndex('movies') - await meilisearchClient.waitForTask(deleteTask.uid) + await meilisearchClient.waitForTask(deleteTask.taskUid) await meilisearchClient .index('movies') .updateFilterableAttributes(['genres']) const documentsTask = await meilisearchClient .index('movies') .addDocuments(dataset) - await meilisearchClient.index('movies').waitForTask(documentsTask.uid) + await meilisearchClient.index('movies').waitForTask(documentsTask.taskUid) }) test('Test 1 hitsPerPage', async () => { diff --git a/tests/placeholder-search.tests.ts b/tests/placeholder-search.tests.ts index 611a361a..c78b2298 100644 --- a/tests/placeholder-search.tests.ts +++ b/tests/placeholder-search.tests.ts @@ -9,14 +9,14 @@ import { describe('Pagination browser test', () => { beforeAll(async () => { const deleteTask = await meilisearchClient.deleteIndex('movies') - await meilisearchClient.waitForTask(deleteTask.uid) + await meilisearchClient.waitForTask(deleteTask.taskUid) await meilisearchClient .index('movies') .updateFilterableAttributes(['genres']) const documentsTask = await meilisearchClient .index('movies') .addDocuments(dataset) - await meilisearchClient.index('movies').waitForTask(documentsTask.uid) + await meilisearchClient.index('movies').waitForTask(documentsTask.taskUid) }) test('Test placeholdersearch set to false', async () => { diff --git a/tests/search-resolver.tests.ts b/tests/search-resolver.tests.ts index ff67202c..956b65fb 100644 --- a/tests/search-resolver.tests.ts +++ b/tests/search-resolver.tests.ts @@ -11,7 +11,7 @@ export const searchResponse = { offset: 0, limit: 0, processingTimeMs: 0, - nbHits: 0, + estimatedTotalHits: 0, exhaustiveNbHits: false, } diff --git a/tests/snippets.tests.ts b/tests/snippets.tests.ts index adbea30a..f6a5cffa 100644 --- a/tests/snippets.tests.ts +++ b/tests/snippets.tests.ts @@ -8,14 +8,14 @@ import { describe('Snippet Browser test', () => { beforeAll(async () => { const deleteTask = await meilisearchClient.deleteIndex('movies') - await meilisearchClient.waitForTask(deleteTask.uid) + await meilisearchClient.waitForTask(deleteTask.taskUid) await meilisearchClient .index('movies') .updateFilterableAttributes(['genres']) const documentsTask = await meilisearchClient .index('movies') .addDocuments(dataset) - await meilisearchClient.index('movies').waitForTask(documentsTask.uid) + await meilisearchClient.index('movies').waitForTask(documentsTask.taskUid) }) test('Test one attributesToSnippet on placeholder without a snippetEllipsisText', async () => {