meilisearch/crates
meili-bors[bot] baeefa4817
Some checks failed
Test suite / Tests on ${{ matrix.os }} (macos-13) (push) Waiting to run
Test suite / Tests on ubuntu-20.04 (push) Failing after 2s
Test suite / Tests almost all features (push) Has been skipped
Test suite / Test disabled tokenization (push) Has been skipped
Test suite / Run tests in debug (push) Failing after 11s
Test suite / Tests on ${{ matrix.os }} (windows-2022) (push) Failing after 53s
Test suite / Run Clippy (push) Successful in 6m35s
Test suite / Run Rustfmt (push) Successful in 1m41s
Run the indexing fuzzer / Setup the action (push) Successful in 1h5m27s
Indexing bench (push) / Run and upload benchmarks (push) Has been cancelled
Benchmarks of indexing (push) / Run and upload benchmarks (push) Has been cancelled
Benchmarks of search for geo (push) / Run and upload benchmarks (push) Has been cancelled
Benchmarks of search for songs (push) / Run and upload benchmarks (push) Has been cancelled
Benchmarks of search for Wikipedia articles (push) / Run and upload benchmarks (push) Has been cancelled
Merge #5166
5166: fix list indexes r=dureuill a=irevoire

# Pull Request

### Smol benchmark on a meilisearch with 1009 indexes:

**Before** this PR on my computer, it was taking 5.5s to call the `GET /indexes` route on a cold computer where all the indexes were closed.
**After** this PR it takes 0.009s to call the route on the first 20 indexes, and 0.176 for the last 20 indexes (retrieving the first or last indexes on main has no impact on performances).

If my computations are right, that's between 61111.1% and 3125% faster on this test 😂 

## Related issue
Fixes https://github.com/meilisearch/meilisearch/issues/4694

## What does this PR do?
- Add the primary key to the cache we already have in the index-mapper
- Provide a new route to retrieve the paginated indexes straight from the cache without opening them
- Fix a bug where the cache was not computed when loading a dump and was forcing us to open the indexes to compute their stats on the fly

## Is it breaking?

Since the field I added is an `Option` I think we should consider it as non-breaking and let it update itself automatically on the next operation of this index.
I also tested to run my patch over a DB generated on release-v1.12.0 and it works. The importing a dump also works.

Co-authored-by: Tamo <tamo@meilisearch.com>
2024-12-31 10:55:22 +00:00
..
benchmarks inital implementation of the progress 2024-12-11 16:25:01 +01:00
build-info Move crates under a sub folder to clean up the code 2024-10-21 08:18:43 +02:00
dump Clean up dependencies 2024-11-27 14:30:34 +01:00
file-store Do not duplicate NDJson when unecessary 2024-12-11 12:02:48 +01:00
filter-parser Check attributes are filterable before evaluating search query 2024-12-07 21:13:13 +00:00
flatten-serde-json Move crates under a sub folder to clean up the code 2024-10-21 08:18:43 +02:00
fuzzers inital implementation of the progress 2024-12-11 16:25:01 +01:00
index-scheduler Merge #5166 2024-12-31 10:55:22 +00:00
json-depth-checker Move crates under a sub folder to clean up the code 2024-10-21 08:18:43 +02:00
meili-snap Add comment explaining why we fixed the version of insta 2024-11-21 16:56:56 +01:00
meilisearch Merge #5166 2024-12-31 10:55:22 +00:00
meilisearch-auth Clean up dependencies 2024-11-27 14:30:34 +01:00
meilisearch-types Merge #5147 2024-12-12 09:15:54 +00:00
meilitool fmt 2024-12-11 18:18:40 +01:00
milli Fix the format and linter error 2024-12-28 20:35:55 +08:00
permissive-json-pointer Add indices field to _matchesPosition to specify where in an array a match comes from (#5005) 2024-11-20 01:00:43 +01:00
tracing-trace Remove orphan span 2024-11-21 12:12:07 +01:00
xtask Update the binary-path description 2024-12-12 09:39:39 +01:00