Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions src/adapter/search-request-adapter/filters.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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.
*
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ export function adaptSearchParams(
// Facets
const facets = searchContext?.facets
if (facets?.length) {
meiliSearchParams.facetsDistribution = facets
meiliSearchParams.facets = facets
}

// Attributes To Crop
Expand Down
11 changes: 5 additions & 6 deletions src/adapter/search-request-adapter/search-resolver.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,10 @@ import { addMissingFacets, extractFacets } from './filters'
const emptySearch: MeiliSearchResponse<Record<string, any>> = {
hits: [],
query: '',
facetsDistribution: {},
facetDistribution: {},
limit: 0,
offset: 0,
exhaustiveNbHits: false,
nbHits: 0,
estimatedTotalHits: 0,
processingTimeMs: 0,
}

Expand Down Expand Up @@ -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
Expand Down
6 changes: 5 additions & 1 deletion src/adapter/search-response-adapter/hits-adapter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,11 @@ export function adaptHits(
let adaptedHits = paginatedHits.map((hit: Record<string, any>) => {
// 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<string, any> = Object.assign(
documentFields,
Expand Down
14 changes: 4 additions & 10 deletions src/adapter/search-response-adapter/search-response-adapter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,22 +21,16 @@ export function adaptSearchResponse<T>(
): { results: Array<AlgoliaSearchResponse<T>> } {
const searchResponseOptionals: Record<string, any> = {}

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

Expand All @@ -49,12 +43,12 @@ export function adaptSearchResponse<T>(
page,
facets,
nbPages,
exhaustiveNbHits,
nbHits,
nbHits: estimatedTotalHits,
processingTimeMS: processingTimeMs,
query,
hits,
params: '',
exhaustiveNbHits: false,
...searchResponseOptionals,
}
return {
Expand Down
2 changes: 1 addition & 1 deletion src/cache/__tests__/assets/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ export const searchResponse = {
offset: 0,
limit: 0,
processingTimeMs: 0,
nbHits: 0,
estimatedTotalHits: 0,
exhaustiveNbHits: false,
}
4 changes: 2 additions & 2 deletions src/cache/first-facets-distribution.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import { FacetsDistribution } from '../types'

export function cacheFirstFacetsDistribution(
export function cacheFirstFacetDistribution(
defaultFacetDistribution: FacetsDistribution,
searchResponse: any
): FacetsDistribution {
if (
searchResponse.query === '' &&
Object.keys(defaultFacetDistribution).length === 0
) {
return searchResponse.facetsDistribution
return searchResponse.facetDistribution
}
return defaultFacetDistribution
}
6 changes: 3 additions & 3 deletions src/client/instant-meilisearch-client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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
)
Expand Down
1 change: 0 additions & 1 deletion src/types/types.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import type {
MeiliSearch,
SearchResponse as MeiliSearchResponse,
FacetsDistribution,
} from 'meilisearch'
Expand Down
4 changes: 2 additions & 2 deletions tests/configure.attributes-to-retrieve.tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 () => {
Expand Down
2 changes: 1 addition & 1 deletion tests/env/react/setup.js
Original file line number Diff line number Diff line change
Expand Up @@ -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)
})()
8 changes: 4 additions & 4 deletions tests/facets-distribution.tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand All @@ -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',
Expand Down
4 changes: 2 additions & 2 deletions tests/filter.tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 () => {
Expand Down
4 changes: 2 additions & 2 deletions tests/geosearch.tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ 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'])
await meilisearchClient.index('geotest').updateSortableAttributes(['_geo'])
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 () => {
Expand Down
4 changes: 2 additions & 2 deletions tests/highlight.tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 () => {
Expand Down
4 changes: 2 additions & 2 deletions tests/pagination.tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 () => {
Expand Down
4 changes: 2 additions & 2 deletions tests/placeholder-search.tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 () => {
Expand Down
2 changes: 1 addition & 1 deletion tests/search-resolver.tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ export const searchResponse = {
offset: 0,
limit: 0,
processingTimeMs: 0,
nbHits: 0,
estimatedTotalHits: 0,
exhaustiveNbHits: false,
}

Expand Down
4 changes: 2 additions & 2 deletions tests/snippets.tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 () => {
Expand Down