MeiliSearch/milli
meili-bors[bot] abd954755d
Merge #4476
4476: Make the `/facet-search` route use the `sortFacetValuesBy` setting r=irevoire a=Kerollmops

This PR fixes #4423 by ensuring that the `/facet-search` route uses the `sortFacetValuesBy` setting.

Note for the documentation team (to be moved in the tracking issue): Using the new `sortFacetValuesBy` setting can slow down the facet-search requests as Meilisearch iterates over the whole list of facet values and computes the count of documents on every entry. That is hardly or even impossible to optimize correctly.

### TODO
 - [x] Create a custom HashMap wrapper for the facet `OrderBy` settings.
         This wrapper will return the `OrderBy` setting of the facet, if not defined will use the default `*` one, and if not there either (strange) will fall back on the lexicographic one.
- [x] Create a `ValuesCollection` wrapper that implements the logic for the lexicographic and count order by.
  - [x] Use it when there is no search query.
  - [x] Use it when there is a search query with and without allowed typos.
  - [x] Do not change the original logic, only use a wrapper.
- [x] Add tests

Co-authored-by: Clément Renault <clement@meilisearch.com>
2024-03-13 14:36:14 +00:00
..
examples Small commit to add hybrid search and autoembedding 2023-12-14 16:07:48 +01:00
src Merge #4476 2024-03-13 14:36:14 +00:00
tests Merge branch 'main' into tmp-release-v1.5.0 2023-11-21 16:30:46 +01:00
Cargo.toml Replace logging timer by spans 2024-03-05 11:05:42 +01:00
README.md Add a README to the milli crate 2023-01-16 16:25:12 +01:00

the milli logo

a concurrent indexer combined with fast and relevant search algorithms

Introduction

This crate contains the internal engine used by Meilisearch.

It contains a library that can manage one and only one index. Meilisearch manages the multi-index itself. Milli is unable to store updates in a store: it is the job of something else above and this is why it is only able to process one update at a time.